繁体   English   中英

大小相等的UIImageView和UIImage

[英]UIImageView and UIImage of equal size

前几天,我在代码中遇到了一个奇怪的场景:

我有一个UIImageView,它使用setImage:加载图像。 UIImageView事先使用一个具有图像确切大小(41 * 41像素)的框架初始化。 我还将内容模式设置为UIViewContentModeCenter,这应确保我的图像永远不会缩放。

现在,当我查看图像视图时,我看到图像有点水平修剪,并且看起来有点模糊(这是一个迹象,表明背景中正在发生某些缩放)。 相反,如果我使用额外的1个像素宽度初始化图像视图,则所有图像都可以正常工作(但是,现在的图像视图比图像宽1像素)。

另外,如果我使用initWithImage初始化UIImageView,那似乎也可以正常工作。 初始化后,我检查了该视图的框架,发现它的大小相同:41 * 41。

因此,最重要的是,我有一些解决此问题的方法,但是我试图了解此处发生的情况。 我能想到的唯一解释是:

  1. 框架中有一个错误
  2. 图像的渲染不适用于特定尺寸的图像。 我知道,例如,纹理始终是2的幂,尽管我怀疑这对于UIImageView是否具有重要意义。

出于记录,我正在为OS 3.0进行编译,该问题在模拟器和设备上均发生。

UIImageView是否包含在其他任何视图中? 我以前遇到过的一件事是由分数像素偏移引起的模糊控制。 即,如果您使用除法计算框架并以非整数float值结束,则UIKit可以在某些偏移和大小处添加一些奇怪的模糊。

因此,图像视图可能具有整数大小,但考虑父对象时,它可能不是绝对帧。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM