2015-12-26 3 views
0

Я пытаюсь настроить y-начало моей кнопки регистрации, чтобы быть чуть выше клавиатуры. Тем не менее, этот код не делает трюк (я не имею ограничений Автокомпоновка BTW)Переместить UIButton над клавиатурой

В viewDidLoad:

// listen for keyboard height 
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification, object: nil) 

Позже у меня есть эта функция:

// keyboard height adjust 
func keyboardWillShow(notification: NSNotification) { 

    let keyboardFrame = (notification.userInfo![UIKeyboardFrameEndUserInfoKey] as! NSValue).CGRectValue() 
    signUpButton.frame.origin.y = keyboardFrame.origin.y - signUpButton.frame.height 

} 
+0

Одна из проблем заключается в том, что рамка клавиатуры приходит к вам в координатах окна, но кадр кнопки находится в координатах своего супервизора; вам нужно преобразовать. – matt

+0

спасибо, как мне это сделать? – cb428

+0

Сделайте поиск. Любой код, показывающий, как реагировать на клавиатуру, будет включать это преобразование. – matt

ответ

2

Дон» Посмотрите на позицию y клавиатуры. Посмотрите на его высоту. Вы можете предположить, что это произойдет из нижней части экрана, так что вам нужно сдвинуть кнопку достаточно, чтобы она была Y-позицией < keyboard_height + button_height (И я бы добавил несколько пикселей пространства, чтобы кнопка не касалась краска клавиатуры. 5 пикселей - это хороший минимум.)

+0

неважно, я получил его. Я думаю, что проблема в том, что у меня есть клавиатура, чтобы начать с начала, тогда я должен снова выбрать текстовое поле, чтобы происходило изменение кнопки. – cb428

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