UIKeyboardFrameBeginUserInfoKey - PullRequest
       4

UIKeyboardFrameBeginUserInfoKey

7 голосов
/ 09 ноября 2011

В чем разница между UIKeyboardFrameBeginUserInfoKey и UIKeyboardFrameEndUserInfoKey?

Означает ли это, что "begin" возвращает значение, которое отличается от того, которое возвращает "end"?

Спасибо!

1 Ответ

13 голосов
/ 16 февраля 2012

UIKeyboardFrameBeginUserInfoKey вернет кадр клавиатуры до начала анимации.UIKeyboardFrameEndUserInfoKey вернет кадр клавиатуры после завершения анимации.В качестве примера возьмем следующий фрагмент кода:

NSDictionary* info = [notification userInfo];
CGRect beginFrame = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];
CGRect endFrame = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];

Если вы напечатаете значения beginFrame и endFrame в окне отладки, вы можете найти что-то вроде этого:

(gdb) print beginFrame
$1 = {
   origin = {
     x = 0, 
     y = 480
   }, 
   size = {
     width = 320, 
     height = 216
   }
 }
 (gdb) print endFrame
 $2 = {
   origin = {
     x = 0, 
     y = 264
   }, 
   size = {
     width = 320, 
     height = 216
   }
 }

Итак, на iPhone это показывает, что клавиатура будет анимироваться снизу экрана.Размер клавиатуры не изменяется (как и ожидалось), но координаты y показывают начальную и конечную позиции клавиатуры.

...