使用imageView的旋转值不断更新标签

时间:2014-11-13 22:03:26

标签: ios objective-c animation

所以我正在制作一个应用程序,其中有一个动画显示某个值。我希望有一个标签,显示更新后的旋转度值。这是我的代码:

CABasicAnimation *myRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
myRotation.fromValue = [NSNumber numberWithFloat:0];
myRotation.toValue = [NSNumber numberWithFloat:angle * M_PI / 180];
myRotation.duration = duration;
myRotation.fillMode = kCAFillModeForwards;
myRotation.removedOnCompletion = NO;
myRotation.repeatCount = count;
myRotation.autoreverses = reverse;
if (easeIn == YES & easeOut == YES) {
    myRotation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
}else if (easeIn == YES & easeOut == NO) {
    myRotation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
}else if (easeIn == NO & easeOut == YES) {
    myRotation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
}else {
    myRotation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
}
[[self.arrowPicture layer] addAnimation:myRotation forKey:@"transform.rotation"];

arrowPicture是我正在旋转的图片。基本上,我希望标签在给定时间显示arrowPicture旋转度的值,这应该随着图像视图的移动而更新。一个简单的self.arrowPicture.text = angle并不起作用。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我认为这与此问题有关:How to get CABasicAnimation progress?

它基本上说,你知道动画持续多长时间,所以你可以设置一个只要动画正在运行就会触发的计时器。