Следующая функция является методом класса TitleOverlay, который представляет собой прозрачное наложение с textView.
Функция показывает оверлей, анимируя его альфа, и параллельно использует свойство animationWillStart анимации для отображения клавиатуры.
На телефонах 3G при первом вызове этой функции наблюдается некоторое отставание перед тем, как отобразится клавиатура. Фактически, я думаю, что анимация, чтобы показать наложение и показать клавиатуру, сериализуется. Я попытался установить длину альфа-анимации наложения на разные длины, и клавиатура всегда отображается после завершения анимации.
По сути, в первый раз наблюдается задержка. Во все последующие моменты анимации клавиатуры и наложения выполняются параллельно, и это выглядит красиво.
Что я могу сделать, чтобы это исправить?
- (void) showOverlay {
[[self superview] bringSubviewToFront:self];
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
[nc addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
[UIView beginAnimations:nil context: nil];
[UIView setAnimationDuration: .5];
[UIView setAnimationDelegate:titleField];
[UIView setAnimationWillStartSelector:@selector(becomeFirstResponder)];
self.whiteBlock.alpha = 1;
[UIView commitAnimations];
}