Чтобы переместить представление up
, просто измените его center
. Во-первых, сохраните оригинал в свойстве CGPoint
.
- (void)viewDidLoad
{
...
self.originalCenter = self.view.center;
...
}
Затем измените при необходимости, когда появится клавиатура:
self.view.center = CGPointMake(self.originalCenter.x, /* new calculated y */);
Наконец, восстановите его, когда клавиатура скрыта:
self.view.center = self.originalCenter;
Добавить анимацию сахара, как вы хотите
У вас есть несколько способов узнать, когда появляется клавиатура.
Наблюдение UIKeyboardDidShowNotification уведомление.
/* register notification in any of your initWithNibName:bundle:, viewDidLoad, awakeFromNib, etc. */
{
...
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
...
}
- (void)keyboardDidShow:(NSNotification *)note
{
/* move your views here */
}
Сделайте обратное с UIKeyboardDidHideNotification
.
1025 * -ИЛИ- *
Реализация UITextFieldDelegate
Обнаружение при редактировании начала / конца для перемещения видов вокруг.
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
/* keyboard is visible, move views */
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
/* resign first responder, hide keyboard, move views */
}
В зависимости от фактических текстовых полей, которые могут потребоваться для отслеживания, в каком поле редактируется пользователь, добавьте таймер, чтобы избежать слишком частого перемещения видов.