Как я могу ускорить переход с первого взгляда на телефоны 3G? - PullRequest
2 голосов
/ 30 января 2010

Следующая функция является методом класса 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];

} 

1 Ответ

1 голос
/ 31 января 2010

Задержка при первом отображении клавиатуры в приложении iPhone - это известная проблема . Существует хак, чтобы обойти это , как указано в этом вопросе.

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