前几天我在我的代码中遇到了一个奇怪的场景:
我有一个用setImage加载图像的UIImageView:先前使用具有图像精确大小(41 * 41像素)的帧初始化UIImageView。我还将内容模式设置为UIViewContentModeCenter,这应该确保我的图像永远不会缩放。
现在,当我查看我的图像视图时,我看到图像水平有点裁剪,看起来有点模糊(这是一个迹象表明在背景中发生了一些重新缩放)。相反,如果我用1个额外像素宽度初始化我的图像视图,则所有图像视图都完美无缺(但我的图像视图现在比我的图像宽一个像素)。
此外,如果我使用initWithImage初始化我的UIImageView:它似乎也可以正常工作。我在初始化后检查了这个视图的框架,发现它的大小相同:41 * 41。
所以底线是我有一些解决这个问题的方法,但我试图了解这里发生了什么。我能想到的唯一解释是:
对于我正在为OS 3.0编译的记录,问题发生在模拟器和设备上。
答案 0 :(得分:4)
UIImageView是否包含在任何其他视图中?我之前遇到的一件事是由分数像素偏移引起的模糊控制。即如果你使用除法计算一个帧并以非整数浮点值结束,那么UIKit可以在某些偏移和大小处添加一些奇怪的模糊。
因此图像视图可能具有整数大小,但考虑到父项时它的绝对帧可能不是。