UIScrollView缩放比例不准确

时间:2011-06-17 09:06:54

标签: uiscrollview zoom

我正在尝试使用UIZoomView将图像放入框架(而不是view.frame)的预定义图形表示中。 要以图像适合所需帧宽250的方式调整缩放比例,代码基本上是:

float frameWidth=250;
float currentZoomScale=frameWidth/currentImage.size.width;
self.scrollView.zoomScale=currentZoomScale;

这几乎可以正常工作......我的问题是根据图像宽度略有不准确。 例如,宽度为640的图像将导致zoomScale为0.390625。 但是屏幕上的可见图像宽度将是250像素以下的1个像素。对于不同大小的其他图像,算法可以工作。

我怀疑原因是除法结果的浮点性质与实际屏幕像素的整数性质相冲突......我的意思是缩放量应该是0.391或类似的东西(我试过0.4,这也是大)。

我的问题:

  1. 算法是否正确 得到我想要的东西?
  2. 如果是,是否有办法将不准确性考虑在内,即更好的算法?
  3. 感谢您的回复!

1 个答案:

答案 0 :(得分:1)

我怀疑你正在使用的除法是产生十进制数,当转换为像素时,十进制数被废弃,因为你不能有0.5像素。你可以自动向上舍入。将算法更改为:

(currentImage.size.width+frameWidth-1)/currentImage.size.width

每次都会给你一个整数。