iphone - 当我在CGAffineTransformMakeScale动画中设置UIImageView的帧时的Strang行为

Jac*_*ack 0 iphone animation transform frame uiimageview

我有一个UIImageView显示一个内容模式为UIViewContentModeScaleAspectFill的图像.

然后我将CGAffineTransformMakeScale的动画(约30秒)与UIImageView相关联.

imageView.transform = CGAffineTransformMakeScale(1,1);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:30];
imageView.transform = CGAffineTransformMakeScale(1.9,1.9);
[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)

30秒后,当完成一轮动画时,我将另一个图像设置到imageView并重新启动动画.

一切都好.但是当我尝试旋转UIImageView以适应用户对设备方向的选择时,它就变得有线了.

当用户即将更改方向时,我将UIImageView的帧设置为CGRectMake(0,0,768,1004)或CGRectMake(0,0,1024,748).

奇怪的是:

如果动画时改变了UIImageView的框架,那很好.但是当下一个图像出现并开始新一轮动画时,UIImageView在屏幕中心突然变小(应该是全屏)然后放大的动画像往常一样开始,只是不再全屏了.

任何人都可以告诉我如何控制框架或方向,而UIImageView有一个变换吗?

因为我猜这是它出错的地方.

谢谢

Ano*_*mie 6

答曰该文件frame属性:

警告:如果transform属性不是identity变换,则此属性的值未定义,因此应忽略.

你或许应该搞乱centerbounds替代,如果您使用的转换.