0

我在超级视图中有一个 UIImageView 3 个级别。(灰色矩形顶部的白色区域是我的超级视图,灰色拉长的矩形是一个子视图,黑色方块是拉长的灰色矩形的另一个子视图,齿轮是 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,应该是一个完美的正方形。然而,图像呈现扭曲,就好像存在纵横比损失一样。

怎么了 ?

4

2 回答 2

0

尝试对您的坐标使用 floorf() 函数以防止它们包含小数部分。

于 2012-10-16T16:02:17.960 回答
0

图像被拉伸是因为默认情况下它使用 UIViewContentModeScaleToFill 内容模式。

self.imageHolder.contentMode = UIViewContentModeScaleAspectFit;
于 2012-10-16T16:04:50.433 回答