动画移动和旋转UIView并不是很有效

kit*_*oop 5 iphone uiview cgaffinetransform ipad ios

我想创建一个动画,同时移动和旋转UIView.我尝试了以下代码:

[UIView beginAnimations:@"MoveAndRotateAnimation" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
[UIView setAnimationDuration:kAnimationDuration];

myView.frame = newFrame;
myView.transform = CGAffineTransformMakeRotation(0.4);

[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)

结果是,在动画完成后,视图绘制不正确(某些部分不再可见).如果我只更改帧或动画的变换,则视图会正确绘制.如果我同时设置框架和转换,则只会出现此问题.

同时为视图移动和旋转动画的正确方法是什么?

Mik*_*ike 9

如果您还要为旋转等动画制作动画,则无法使用边框,边界或居中.您需要对所有内容使用CGAffineTransforms并将它们连接在一起.像这样:

CGAffineTransform transform = CGAffineTransformMakeTranslation(100,100);
transform = CGAffineTransformRotate(transform, 0.4);

[UIView beginAnimations:@"MoveAndRotateAnimation" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
[UIView setAnimationDuration:kAnimationDuration];

myView.transform = transform;

[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)