使用动画移动UIImageView

时间:2009-07-19 00:47:43

标签: iphone cocoa-touch

我实现了一个滑动条类型的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];

抱歉这个骨头问题!

1 个答案:

答案 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];
  ...
}