在CGAffineTransformMakeRotation之后,UIImageView“被压扁”

时间:2011-08-24 17:46:37

标签: iphone ios ipad uiimageview

我有一个UIImageView,它位于另一个UIView内。

我用以下内容旋转UIImageView:

 object.transform=CGAffineTransformMakeRotation(angle)

当外部UIView没有旋转时,可以使用CGAffineTransformMakeRotation来旋转UIImageView,并且它可以正常工作。

然而,当外部UIView旋转,然后我旋转UIImageView(上面非零“角度”) - UIImageView出现“压扁”或“扁平”。

随着它从不同的角度旋转,这似乎总是变得越来越糟。

为什么会这样?外部UIView是否修改了转换矩阵,然后通过明确设置再次修改它?

如何在旋转的UIView中旋转UIImageView并使其正确旋转?

2 个答案:

答案 0 :(得分:15)

也许你的UIIamgeView被它的超级视图自动化了。

您可以尝试通过设置禁用自动调整功能:

imageView.autoresizingMask = UIViewAutoresizingNone;

或者如果您不希望iOS自动更改imageView的大小但仍希望它自动为您设置位置,您可以致电:

imageView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin;

告诉我你是否还有问题。

答案 1 :(得分:3)

抗锯齿是将视图边缘与其下方图层的颜色混合的过程。通过在应用程序的info.plist中设置UIViewEdgeAntialiasing标志,可以在系统范围内启用视图边缘的抗锯齿,但正如文档所警告的那样,这会对性能产生负面影响(因为它需要Core Animation从图层下方的渲染缓冲区中采样像素为了计算混合)。

  

使用边缘抗分散渲染=是