Переместить UIImageView с анимацией - PullRequest
0 голосов
/ 19 июля 2009

Я реализовал управление пользовательским интерфейсом типа ползунка, например, механизм разблокировки на 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 Ответ

3 голосов
/ 19 июля 2009

Вы, вероятно, можете сделать это намного проще, используя неявную анимацию. Предполагая, что вы в настоящее время делаете что-то вроде этого:

- (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];
  ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...