【发布时间】:2012-10-16 15:53:27
【问题描述】:
我在超级视图中有一个 3 层的 UIImageView。 (灰色矩形顶部的白色区域是我的超级视图,灰色拉长的矩形是一个子视图,黑色方块是拉长的灰色矩形的另一个子视图,齿轮是 UIImageView 的图像,它是黑色方块的子视图)。 UIImageView 的边框矩形计算如下,其中 _normalImage 是一个 UIImage 对象。我在代表黑色方块的子类中执行此操作
CGFloat xPoint = self.bounds.size.width/2 - _normalImage.size.width/2;
CGFloat yPoint = self.bounds.size.height/2 - _normalImage.size.height/2;
CGRect frameRect = CGRectMake(xPoint, yPoint, _normalImage.size.width, _normalImage.size.height);
self.imageHolder = [[UIImageView alloc] initWithFrame:frameRect];
_normalImage 是 26X26,应该是一个完美的正方形。然而,图像呈现失真,就好像存在纵横比损失一样。
怎么了?
【问题讨论】:
-
self在这种情况下是黑色背景的视图,您最终是否将imageHolder添加为黑色视图的子视图? -
是的 self 是黑色背景。 imageHolder 是黑色视图的子视图
-
那么当你
NSLog(@"%@", NSStringFromCGRect(self.imageHolder.bounds))时,计算出的帧大小是否正确? -
如果您有视网膜显示器,请尝试将图像分辨率加倍并在其名称中添加“@2x”后缀。
标签: iphone ios uiview uiimageview uiimage