Почему при первом запуске анимации iOS замедляются? - PullRequest
13 голосов
/ 08 ноября 2011

Мне кажется, что в первый раз, когда я запускаю анимацию (анимацию фрейма UIView, или положение CALayer и т. Д.), Она довольно прерывистая, а последующие анимации плавные.

Что могло бы вызвать это, и есть ли способ предварительно кэшировать анимацию?

Примечание: этот вопрос очень похож на этот: Задержка анимации UIImageView при первом запуске , но UIImages не используются в моей анимации.

Ответы [ 3 ]

2 голосов
/ 21 декабря 2011

Если у вас есть TextField, который, как я полагаю, и получает ваш пользовательский ввод. Используйте UITextFieldDelegate методы Did, а не Should

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
//Do textfield animations and other view animations here

}

Не делайте анимацию;

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
//Don't do textfield animations and other view animations here
//This is where the system does its own animations; raising the keyboard, etc
}

0 голосов
/ 08 ноября 2011

Запустите его в viewDidAppear вместо viewWillAppear. Кэширование должно происходить после того, как изображение действительно появилось, и оно должно выглядеть так же для пользователя.

0 голосов
/ 08 ноября 2011

Если вы используете [UIImage imageNamed: @"herp.png"], изображение будет кэшировано.Если изображение много нарисовано, оно будет распаковано в память, иначе оно будет лениво загружаться и вызывать заикание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...