我实现了一个滑动条类型的UI控件,就像iPhone上的解锁机制一样。
当调用touchesEnded方法时,我将滑块返回到它的起始位置。相反,我想动画回到它的起始位置。
代码应该是这样的,但它不起作用。我在这里做错了什么?
Self.unlock是一个UIImageView:
CABasicAnimation *theAnimation;
theAnimation = [CABasicAnimation animationWithKeyPath:@"position.x"];
theAnimation.fromValue = [NSNumber numberWithFloat:BEGINX];
theAnimation.toValue = [NSNumber numberWithFloat: 0.0];
theAnimation.duration = 0.5;
[self.unlock addAnimation: theAnimation];
抱歉这个骨头问题!
答案 0 :(得分:3)
您可以使用隐式动画以更简单的方式执行此操作。假设你现在正在做这样的事情:
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
...
myView.frame = startingFrame;
...
}
您可以使用隐式动画制作动画对视图所做的任何更改(例如其框架):
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
...
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
myView.frame = startingFrame;
[UIView commitAnimations];
...
}