为转换后的UIImageView设置动画效果?
我正在尝试在创建自定义控件的同时学习一些动画。 我在这里经历了一个奇妙的教程:http://www.raywenderlich.com/9864/how-to-create-a-rotating-wheel-control-with-uikit
我有它的工作,开发人员有一个链接到他的代码在github这里:https://github.com/funkyboy/How-To-Create-a-Rotating-Wheel-Control-with-UIKit
现在我正在试图做的是动画化所选项目以在选中插槽中旋转的同时进行增长。 我也改变了选定的槽位于底部,为了适应这一点,我改变了方法中的代码
- (void) drawWheel
我改变了路线
im.transform = CGAffineTransformMakeRotation(angleSize * i);
至
im.transform = CGAffineTransformMakeRotation(angleSize * i - M_PI / 2);
以解释现在的位置-pi / 2
接下来我要做的就是让选定的丁香大小缩小; 这将发生在两个不同的场合; 一次,当轮子加载时,以及当关闭通过选定位置时。 在这里,我有点卡住了。
我写了以下方法:
(void)growImage:(UIImageView *)v {
[UIView animateWithDuration:1.0动画:^ {v.transform = CGAffineTransformMakeScale(1.3,1.3); }完成:^(BOOL finished){[UIView animateWithDuration:1.0动画:^ {v.transform = CGAffineTransformMakeScale(1.0,1.0); }]; }];
}
我首先在initWheel方法中首先调用初始丁香:
if (i == 0) {
im.alpha = maxAlphavalue;
[self growImage: cloveImage];
}
对于第二项,我写了下面的方法:
我在 - (void)touchesEnded中调用:(NSSet *)触及事件:(UIEvent *)event {
因此,在设置了alpha值之后:
lab.alpha = maxAlphavalue;
[self findViewandGrowImage : currentValue];
对我而言,我在某个地方发生了根本的脱节:我做错了什么; 第一个案件工作正常; 第二种情况使得丁香旋转到轮子上的不同部分以及成长和缩小......我不知道为什么。 我很喜欢任何输入。
谢谢。
如果您有以下转换:
m.transform = CGAffineTransformMakeRotation(angleSize*i - M_PI/2);
然后你将它制作成动画
[UIView animateWithDuration:1.0 animations:^{ v.transform = CGAffineTransformMakeScale(1.3, 1.3); }
它将从(angleSize*i - M_PI/2)
旋转回角度0,因为它的动画效果非常好,因为您的第二个转换不包括此旋转。
如果您希望它改变大小并保持当前角度,则需要将旋转与比例合并,然后在计算中使用它,如下所示:
[UIView animateWithDuration:1.0 animations:^{
CGAffineTransform newTransform = CGAffineTransformMakeRotation(angle);
v.transform = CGAffineTransformScale(newTransform, 1.3, 1.3);v.transform = CGAffineTransformMakeScale(1.3, 1.3);
}
链接地址: http://www.djcxy.com/p/74215.html
上一篇: animate a transformed UIImageView?
下一篇: how to loop several CABasicAnimations contained in a CATransaction block?