viewDidLoad中的CGAffineTransformRotate拉伸/分散UIImageView

Jan*_*Jan 4 uiimageview ios

我需要在加载视图时按接口构建器创建的UIImageView以给定角度旋转.

- (void)viewDidLoad
{
   [super viewDidLoad];
    image.transform = CGAffineTransformRotate(image.transform, REF_INIT_OFFSET*M_PI/180); 
}
Run Code Online (Sandbox Code Playgroud)

这会旋转图像,但后者完全扭曲和拉伸.如果REF_INIT_OFFSET是90的倍数,它可以正常工作!

这是图片的样子(注意指针指向"0")

在此输入图像描述

以下是它的实际外观:

看起来图像被拉伸到错误的方向.

你知道什么是错的吗?

谢谢,

akn*_*new 7

不确定它对你有帮助,但在[UIImage setFrame:]之后我遇到了同样的问题,如果转换了UIImage,决定使用setBounds而不是setFrame

在评论中解决讨论中的问题:

如果autoresizesSubviews属性为YES,则在shouldAutorotateToInterfaceOrientation中的viewDidLoad之后隐式调用方法setFrame

- (void)viewDidLoad {
[super viewDidLoad];
self.view.autoresizesSubviews=NO;
image.transform = CGAffineTransformRotate(image.transform, 50*M_PI/180);
}
Run Code Online (Sandbox Code Playgroud)

  • `self.view.autoresizesSubviews = NO;`这似乎是解决方案!谢谢 ! (2认同)