我正在尝试在创建自定义控件时学习一些动画。我在这里完成了一个很棒的教程: 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
接下来我要做的就是让选定的丁香变大变小;这将发生在 2 个不同的场合;一次,当车轮加载时,以及当关闭通过所选位置时。在这里我有点卡住了。
我写了以下方法:
(void) growImage : (UIImageView * ) v {
[UIView animateWithDuration:1.0 动画:^{ v.transform = CGAffineTransformMakeScale(1.3, 1.3); } 完成:^(BOOL 完成){ [UIView animateWithDuration:1.0 动画:^{ v.transform = CGAffineTransformMakeScale(1.0, 1.0); }]; }];
}
我首先在初始丁香被设置的 initWheel 方法中调用它:
if (i == 0) {
im.alpha = maxAlphavalue;
[self growImage: cloveImage];
}
对于第二项,我编写了以下方法:
- (void) findViewandGrowImage : (int) tag { for (id myArrayElement in self.container.subviews) { UIImageView *v = myArrayElement; if (v.tag == tag ){ [self growImage : v]; 休息; } } }
我在 - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
因此,在设置 alpha 值后:
lab.alpha = maxAlphavalue;
[self findViewandGrowImage : currentValue];
对我来说,我做错了什么有一个根本的脱节;第一种情况很好;第二种情况使丁香在轮子上旋转到不同的扇区并生长和收缩……我不知道为什么。我喜欢任何输入。
谢谢你。