Я работаю над приложением чата и пытаюсь изменить свое представление, когда клавиатура входит. текстовое поле находится в нижней части моего представления, и я хочу, чтобы он поднимался, когда он щелкнут, и появится клавиатура. TextField находится в небольшом UIView, называемом dockView, в таблицеView, где отображается сообщение swill. Высота dockView имеет ограничение, на которое ссылается как dockViewHeight, равное 47 в начале. Поэтому я использую этот метод с UITextFieldDelegate:iOS: layoutIfNeeded, похоже, не работает при обновлении вида после изменения ограничений (Xcode 6.4, Swift 1.2)
func textFieldDidBeginEditing(textField: UITextField) {
println("did")
self.view.layoutIfNeeded()
UIView.animateWithDuration(0.5, animations: {
println("go \(self.dockViewHeight.constant)")
self.dockViewHeight.constant = 400
println("go \(self.dockViewHeight.constant)")
self.view.layoutIfNeeded()
println("go \(self.dockViewHeight.constant)")
}, completion: nil)
}
Метод называется, как и все выводится на консоль. Контрсилы также обновляются, как вы можете увидеть ее в журналах:
did
go 47.0
go 400.0
go 400.0
Однако, нет никаких изменений на экране и высоту dockView остается тем же самым. Любая идея о том, почему это происходит?
Спасибо!