我正在尝试为CATransition
创建UIView
。
我想将UIView
向右移动,同时(并且始终在同一点上),将其旋转。
图像更好地解释了。
我可以使用CATransition
移动它,并使用CABasicAnimation
旋转它,但我不知道如何一起做这些。
感谢。
Complex Transition http://img585.imageshack.us/img585/8949/stackover.png
答案 0 :(得分:1)
- (void)scaleAndRotate:(UIImageView *)myView andAngle:(float)angle {
CGAffineTransform scaleTrans = CGAffineTransformMakeScale(1.5,1.5);
CGAffineTransform rotateTrans =CGAffineTransformMakeRotation(angle * M_PI / 180);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
myView.transform = CGAffineTransformConcat(scaleTrans, rotateTrans);
[UIView commitAnimations];
}
在上述方法中:替换&用你想要的...... 它会工作,,,当然:) 一切顺利
答案 1 :(得分:0)
您应该考虑制作图像的两个副本,旋转一个,然后将它们都屏蔽,以便它们可以在L形状中彼此相邻放置。
使用此技术,您将同时进行两次平移(将蒙版和基础图像移动到图像A和T)。但请注意,旋转不会设置动画。您将立即将图像T置于旋转状态,并通过在掩模下移动它来显示它(同时在图像A上执行相反操作以隐藏它)。因此,您实际上并没有将平移和旋转组合到一个动画中,而是仅使用原始图像(A)和旋转副本(T)上的掩码进行翻译。
你需要屏蔽另一侧的左侧和另一侧的右侧。 L的形状应该在两者上都有相反的45度角,然后你可以将那些倾斜的边缘组合在一起形成L.随着时间的推移,你只需移动每个面具,直到第一个图像完全消失,你就是离开你的最终状态。
掩蔽部分是困难的部分。有关使用CoreGraphics屏蔽UIImage的信息,请参阅此答案:masking a UIImage
掩模PNG基本上只是一个矩形,一边是45度角。您可以在您选择的图像编辑器中创建它(Photoshop,GIMP,Acorn)。
注意:这种方法会在角落处形成锐利的边缘。另一种方法是当它们从垂直向下运动移动到水平向右运动时扭曲该角落周围的像素。 (我认为)这将涉及更多。