首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复杂的CATransition

复杂的CATransition
EN

Stack Overflow用户
提问于 2011-05-05 00:17:42
回答 2查看 1.2K关注 0票数 0

我正在尝试创建到UIViewCATransition

我想将UIView向右移动,同时(并且总是在同一个点上)旋转它。

图像更好地解释了这一点。

我可以用CATransition移动它,也可以用CABasicAnimation旋转它,但我不知道如何一起做这些事情。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2011-05-24 13:24:10

-(空)scaleAndRotate:(UIImageView*)myView andAngle:(浮动)角度{

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2011-05-05 00:26:58

您应该考虑制作图像的两个副本,旋转其中一个,并遮罩这两个副本,以便它们可以以L形相邻放置。

使用此技术,您将一次对图像A和T执行两次平移(移动蒙版和底层图像)。但是,请注意,旋转将不会是动画。您将立即将图像T置于旋转状态,并通过将其移动到遮罩下来显示它(同时对图像A执行相反的操作以隐藏它)。因此,您实际上并没有将平移和旋转组合到一个动画中,而是在原始图像(A)和旋转副本(T)上仅使用带有蒙版的平移。

您将需要遮罩一个的左侧和另一个的右侧。蒙版的形状应该有一个相反的45度角在两个,然后你可以把这些有角度的边缘在一起形成L。随着时间的推移,你只需在每个图像中移动蒙版,直到第一张图像完全消失,剩下的就是你的最终状态。

掩蔽部分是最难的部分。查看以下关于使用CoreGraphics屏蔽UIImage的答案:masking a UIImage

遮罩PNG基本上只是一个矩形,一边成45度角。你可以在你选择的图像编辑器(Photoshop,GIMP,橡子)中创建它。

注意:这种方法将在拐角处创建一个锐利的边缘。另一种方法是当像素从垂直向下运动移动到水平向右运动时,扭曲该角周围的像素。(我认为)这会涉及更多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5886562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档