我正在尝试创建CATransition
一个UIView
.
我想UIView
向右移动,同时(并且总是在同一点)旋转它。
用图片解释得更好。
我可以用 a 移动它CATransition
,也可以用 a 旋转它CABasicAnimation
,但我不知道如何一起做。
谢谢。
我正在尝试创建CATransition
一个UIView
.
我想UIView
向右移动,同时(并且总是在同一点)旋转它。
用图片解释得更好。
我可以用 a 移动它CATransition
,也可以用 a 旋转它CABasicAnimation
,但我不知道如何一起做。
谢谢。
-(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];
}
在上面的方法中:用你想要的替换 & ......它会工作的,,, 当然:) 一切顺利
您应该考虑制作图像的两个副本,旋转一个,然后将它们都遮住,以便它们可以以 L 形彼此相邻放置。
使用这种技术,您将同时对图像 A 和 T 进行两次平移(移动蒙版和底层图像)。但是,请注意旋转不会被动画化。您将立即将图像 T 置于旋转状态,然后通过在遮罩下移动它来显示它(同时在图像 A 上执行相反的操作以隐藏它)。因此,您实际上并没有将平移和旋转组合到一个动画中,而是在原始图像 (A) 和旋转副本 (T) 上仅使用带有蒙版的平移。
您需要遮盖其中一个的左侧和另一个的右侧。蒙版的形状应该在两者上都有一个相反的 45 度角,然后你可以将这些有角度的边缘放在一起形成 L。随着时间的推移,你只需在每个中移动蒙版,直到第一个图像完全消失,你就是留下你的最终状态。
掩蔽部分是最难的部分。请参阅有关使用 CoreGraphics 屏蔽 UIImage 的答案:屏蔽 UIImage
掩码 PNG 基本上只是一个矩形,其一侧呈 45 度角。您可以在您选择的图像编辑器(Photoshop、GIMP、Acorn)中创建它。
注意:这种方法会在拐角处产生锐利的边缘。另一种方法是在像素从垂直向下运动到水平向右运动时扭曲该角周围的像素。(我认为)这将涉及更多。