iPad сделал анимацию движения - PullRequest
0 голосов
/ 24 февраля 2011

У меня проблема с производительностью на iPad. Мне нужно перетащить UIView с анимацией. Это как самодельный UIScrollView, но с большим эффектом отскока.

Я использую самодельный анимационный цикл с NSTimer (scheduletTimerWithInterval 0,3 с). На каждой итерации я перемещаю представление шаг за шагом.

Но проблема в том, что время от времени зависает. Не слишком много ... но достаточно, чтобы чувствовать ... Кто-нибудь знает какие-либо подходы, чтобы сделать следующее правильно, так что это будет работать как очарование?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 24 февраля 2011

Вы должны использовать [UIView beginAnimations] вместо запланированного таймера.Например, чтобы переместить что-то на 2 секунды, вы можете сделать что-то вроде этого:

YourView.center = CGPointMake(0,0);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:2];
YourView.center = CGPointMake(30, 30);
[UIView commitAnimations];

Это переместит YourView с 0,0 до 30,30 в течение 2 секунд (для этого используется setAnimationDuration).Таким образом, вы бы имели последовательность из них, если вы хотите сделать эффект отказов.Вы также можете получить уведомление о завершении анимации с помощью

[UIView setAnimationDidStopSelector:@selector(somefunction)]

, после чего вы можете запустить другую анимацию в функции «somefunction».

0 голосов
/ 24 февраля 2011

Возможно, таймер вызывает вашу проблему. Интервал анимации должен быть примерно таким: 1.0 / 60.0f

...