NotificationCenter: переключение клавиатуры несколько раз устанавливает странное значение y-позиции - PullRequest
0 голосов
/ 17 января 2020

У меня есть UIViewController с UITableView. Я использую NotificationCenter, чтобы установить y-координаты для представления, чтобы настроить, когда клавиатура показывает и снова скрывается. Для первого шоу + скрыть все выглядит хорошо. Во второй раз все портится на экране. Я включил операторы печати в действия show / hide, чтобы докопаться до сути - см. Ниже.

Это вывод консоли для одиночной итерации show / hide :

Optional(<UIView: 0x7fd6d6522d40; frame = (0 0; 375 758); autoresize = W+H; layer = <CALayer: 0x600000a900c0>>)
pre-show:  0.0
post-show: -278.0
Optional(<UIView: 0x7fd6d6522d40; frame = (0 -278; 375 758); autoresize = W+H; layer = <CALayer: 0x600000a900c0>>)
pre-show:  -278.0
post-show: -614.0
pre-hide:  -614.0
post-hide: 0.0

И это то, что показано после второй итерации :

Optional(<UIView: 0x7fd6d6522d40; frame = (0 0; 375 758); autoresize = W+H; layer = <CALayer: 0x600000a900c0>>)
pre-show:  0.0
post-show: -69.0
Optional(<UIView: 0x7fd6d6522d40; frame = (0 -69; 375 758); autoresize = W+H; layer = <CALayer: 0x600000a900c0>>)
pre-show:  -69.0
post-show: -405.0
pre-hide:  -405.0
post-hide: 0.0

Я не понимаю, почему 1) согласно выводу консоли, keyboardWillShow, кажется, также вызывается, когда клавиатура снова скользит вниз - так, дважды за один цикл вместо 1 x show и 1 x hide 2) post-show имеет другое значение во второй итерации - т.е. -69.0 вместо -278.0

Может кто-нибудь помочь мне понять, что здесь происходит не так?

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