2015-03-27 2 views
0

У меня есть UIView с UIView и UITableView в нем. Ребенок UIView предназначен для композиции, имеет текстовое поле и кнопку отправки, как любой мессенджер. Как я могу привязать/исправить этот дочерний UIView в нижней части Superview и сохранить его видимо поверх UITableView? Однако дочерний UIView также должен подниматься над клавиатурой, когда сосредоточено его текстовое поле.Как подключить UIView к нижней части своего супервизора, но заставить его двигаться, когда появляется клавиатура?

ответ

0

Вы можете сделать это вручную. Вы можете подписаться на получение уведомлений о клавиатуре. Вы можете следующие функции

[[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 с фрагментами кода.

+0

Изменение верхнего значения свойства вставки содержимого вашего 'tableView' в этих уведомлениях является самым простым способом. – GoGreen

0

Ответ на ваш вопрос отличается от AutoLayout и для макета стиля AutoResizingMasks (распорки и пружины).

Для AutoLayout, по умолчанию для Xcode 6, то, что вы бы сделали, было бы создать ограничение для привязки вашего представления к нижней части его супервизора, как обычно. Затем вы выберете это ограничение в IB и перетащите его в заголовочный файл вашего контроллера представлений и создайте IBOutlet для ограничения.

Затем вы можете написать обработчик уведомлений для уведомления keyboard will show, а в этом обработчике изменить константу (смещение) вашего свойства ограничения. Последним шагом будет вызов метода layoutIfNeeded вашего супервизора внутри блока анимации UIView. Это заставляет изменение макета обновлять ограничение для анимации.

Затем вы делаете обратное для уведомления keyboard will hide.

Если вы используете макет стиля распорок и пружин, это похоже, но проще. Вы просто создаете выход для представления, которое хотите переместить, а затем заставляете обработчик уведомлений keyboard will show использовать анимацию UIView для анимации изменения свойства центра представления.

Смежные вопросы