【发布时间】:2011-04-21 15:38:01
【问题描述】:
我有一个图像,我想将其加载到图像视图中,并将 minimumZoomScale 以及 zoomScale 设置为我计算如下的 aspectFill 之类的比例:
// configure the map image scroll view
iImageSize = CGSizeMake(iImageView.bounds.size.width, iImageView.bounds.size.height);
iScrollView.minimumZoomScale = iScrollView.bounds.size.height / iImageSize.height;
iScrollView.maximumZoomScale = 2;
iScrollView.zoomScale = iScrollView.minimumZoomScale;
iScrollView.contentOffset = CGPointMake(0, 0);
iScrollView.clipsToBounds = YES;
iScrollView 大小为 450 x 320 像素,iImageSize 为 1600 x 1960 像素。
手动计算 minimumZoomScale:450 / 1960 = 0.22959184。 系统确定 0.234693885 代替 (???)。
但是要使窗口适合 450 像素的空间,这两个数字都不起作用(!!!)。 我手动尝试并发现 0.207 是正确的数字(这将转换为 2174 xp 的图像高度或 406px 的 UIScrollView 高度)。
供参考:UIScrollview屏幕为450px,即480px减去状态栏高度(10),减去UITabBar高度(20)
关于这种不当行为的任何线索?
【问题讨论】:
-
我也遇到过。我将 minimumZoomScale 设置为某个值,然后它会在某个点自动调整。调整或多或少不明显,我只是把它留在里面,然后添加了这一行 scrollview.zoomScale = scrollview.minimumZoomScale;只是为了确保一切都同步。
标签: iphone objective-c xcode