2013-02-21 2 views
0

Я часто замечал, что анимация UIView часто не является гладкой во время первого события startFirstResponder, когда клавиатура появляется впервые. Я имею в виду анимации, которые происходят с анимацией клавиатуры, например, ручную прокрутку UIView, чтобы сделать видимым текстовый экран. Анимация всегда гладкая после первого запуска.Анимация при первом появлении клавиатуры иногда негладкая

Есть ли техническая причина, почему это так? Я думал, что может быть какая-то ленивая загрузка или оптимизация, которая происходит с анимацией UIView при первом запуске, а затем хранится в кеше для повторного использования. Есть ли уроки об этом? Если это не понятно этой аудитории, я могу попытаться воссоздать проблему в тестовом проекте.

ответ

1

Хотя это не отвечает на вопрос ПОЧЕМУ это происходит, в нем объясняется, как его исправить.

Why are iOS animations slow the first time they are run?

В принципе, вам нужно сделать анимацию на «DID» событий, а не «ВОЛЯ» или «ДОЛЖНА». Система выполняет анимацию во время событий «will/should», поэтому, по-видимому, происходит какое-то сговорившееся событие. Это не объясняет, почему поведение несовместимо между первым запуском и всеми прогонами.

Я думал, как и некоторые из вас, что я должен поместить анимацию в «textFieldWillBeginEditing», потому что я хотел, чтобы анимация запускалась одновременно с анимацией клавиатуры. К счастью, размещение кода анимации в «DID» на самом деле все еще гарантирует одновременную анимацию. Фантастика.

Если у кого-то еще есть объяснение несоответствия между первым и последним прогонами, я все равно оставлю его вопрос открытым и дам вам ответ и ответ на вопрос. Благодаря!