У меня есть UIView с UIView и UITableView в нем. Ребенок UIView предназначен для композиции, имеет текстовое поле и кнопку отправки, как любой мессенджер. Как я могу привязать/исправить этот дочерний UIView в нижней части Superview и сохранить его видимо поверх UITableView? Однако дочерний UIView также должен подниматься над клавиатурой, когда сосредоточено его текстовое поле.Как подключить UIView к нижней части своего супервизора, но заставить его двигаться, когда появляется клавиатура?
ответ
Вы можете сделать это вручную. Вы можете подписаться на получение уведомлений о клавиатуре. Вы можете следующие функции
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillBeHidden:)
name:UIKeyboardWillHideNotification object:nil];
Существует очень хорошая статья об этом на Apple Keyboard Management с фрагментами кода.
Ответ на ваш вопрос отличается от AutoLayout и для макета стиля AutoResizingMasks (распорки и пружины).
Для AutoLayout, по умолчанию для Xcode 6, то, что вы бы сделали, было бы создать ограничение для привязки вашего представления к нижней части его супервизора, как обычно. Затем вы выберете это ограничение в IB и перетащите его в заголовочный файл вашего контроллера представлений и создайте IBOutlet для ограничения.
Затем вы можете написать обработчик уведомлений для уведомления keyboard will show
, а в этом обработчике изменить константу (смещение) вашего свойства ограничения. Последним шагом будет вызов метода layoutIfNeeded вашего супервизора внутри блока анимации UIView. Это заставляет изменение макета обновлять ограничение для анимации.
Затем вы делаете обратное для уведомления keyboard will hide
.
Если вы используете макет стиля распорок и пружин, это похоже, но проще. Вы просто создаете выход для представления, которое хотите переместить, а затем заставляете обработчик уведомлений keyboard will show
использовать анимацию UIView для анимации изменения свойства центра представления.
- 1. [Авто макет] Прикрепление UIView к нижней части своего супервизора при изменении высоты супервизора
- 2. Добавить subview, прикрепленный к нижней части супервизора (пользовательская клавиатура)
- 3. Как подключить UIView к нижней части UIScrollView в раскадровке?
- 4. Как сделать вид UIViewController, чтобы придерживаться нижней части его супервизора?
- 5. Скользящий UIView Когда клавиатура появляется в iOS
- 6. Как спрятать UIView в правой части его супервизора программно
- 7. Как получить уведомление, когда UIView отсоединен от своего супервизора?
- 8. Клавиатура делает UIView медленно, когда он появляется?
- 9. Как добавить тень к нижней части UIView
- 10. Swift: UIView изменился размер, когда появляется клавиатура
- 11. UIScrollView не идет по экрану при попытке привязать его к нижней части супервизора
- 12. Как заставить UITextField двигаться вверх, когда клавиатура присутствует?
- 13. С AutoLayout, я хочу, чтобы 8px высокий вид придерживался нижней части своего супервизора
- 14. Когда появляется сенсорная клавиатура?
- 15. Как подключить не-дочерний div к нижней части другого div
- 16. UIview продолжал идти в нижней части UIViewcontroller
- 17. Как я могу сделать UIButton прилипает к нижней части UIView
- 18. Когда выпустить UIView, который удален из супервизора
- 19. Как разместить UIView в режиме супервизора?
- 20. Как разместить кнопку в нижней части макета и заставить ее оставаться там, даже когда открывается клавиатура?
- 21. UIScrollView Когда клавиатура появляется
- 22. Нижний колонтитул UITableView перемещается, когда появляется клавиатура
- 23. Клавиатура появляется, когда не требуется
- 24. Можно ли подключить верхнюю часть UIView к нижней части панели навигации?
- 25. [CSS] Как заставить его двигаться вверх?
- 26. Как подключить барграфы к нижней части без фиксированной высоты
- 27. CSS Как подключить поле ввода к нижней части окна делителя
- 28. Как заставить FAB перейти к нижней части макета?
- 29. UITableViewController не имеет прокрутки, когда появляется клавиатура
- 30. inputAccessoryView Не звонит, когда появляется клавиатура
Изменение верхнего значения свойства вставки содержимого вашего 'tableView' в этих уведомлениях является самым простым способом. – GoGreen