небольшие задержки / пауза в анимации - PullRequest
0 голосов
/ 09 апреля 2011

Привет всем, кто-нибудь может мне помочь с решением этой проблемы ...

У меня есть проект, в котором NSTimer запускается примерно 20 раз в секунду, и поэтому при использовании только одного изображения (загружаемого программно) такое же изображение появляется на экране iPhone примерно двадцать раз в секунду, и эти изображения падают сверху экран в нижней части, где они удалены (более или менее имитируя дождь или капли дождя).

Моя проблема в том, что, глядя на анимацию, я заметил, что есть очень маленькие задержки, которые выглядят как перерыв, пауза или небольшие вибрации. Таким образом, поток не является гладким.

Может кто-нибудь помочь мне с решением, пожалуйста.

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

Ответы [ 4 ]

1 голос
/ 09 апреля 2011

Вы можете проверить класс CADisplayLink.

0 голосов
/ 09 апреля 2011

Тот факт, что вы просите таймер в цикле выполнения пользовательского интерфейса отключиться с определенной скоростью, не означает, что вас будут вызывать именно с такой скоростью или через равные интервалы.Вы должны проверить время и истекшее время "dt" внутри каждого обратного вызова таймера и соответственно изменить положение анимации, y + dy * dt и т. Д.

0 голосов
/ 09 апреля 2011

Вы действительно не должны использовать таймер для этого.Вместо этого вы должны использовать встроенные UIView методы анимации:

animateWithDuration:animations:
animateWithDuration:animations:completion:
animateWithDuration:delay:options:animations:completion:
0 голосов
/ 09 апреля 2011

Таймер не предназначен для анимации.

Лучше всего сделать так, чтобы поток работал в бесконечном цикле, где вы проверяете, пора ли снова анимироваться или просто всегдаодушевленный (что дает вам более высокую частоту кадров), но с использованием прошедшего времени в качестве ориентира для состояния, которое вы рисуете.

...