【发布时间】:2016-08-31 18:22:04
【问题描述】:
我有一个 TopContainer 视图,然后是一个 Scrollview,然后又是一个 BottomContainer 视图。
现在的限制是滚动视图的顶部到 topContainer 的底部,并且滚动视图的底部到底部容器的顶部。
当我启动视图控制器并查看视图层次结构时,它很好。
但是当键盘显示时,我想修改自动布局约束,以便底部容器向上移动。
所以我想我像这样保存约束并更改常量:
private var toolbarBottomConstraint: NSLayoutConstraint?
self.toolbarBottomConstraint = self.toolbar.autoPinEdgeToSuperviewEdge(.Bottom, withInset: 0)
然后当键盘弹出时我这样做:
func keyboardWillShow(notification:NSNotification){
var userInfo = notification.userInfo!
var keyboardFrame:CGRect = (userInfo[UIKeyboardFrameBeginUserInfoKey] as! NSValue).CGRectValue()
keyboardFrame = self.view.convertRect(keyboardFrame, fromView: nil)
self.toolbarBottomConstraint?.constant = keyboardFrame.size.height
}
这没有任何作用。键盘高度正是底部需要在键盘顶部的偏移量。
为什么视图没有改变?我总是这样改变常数,它总是有效的。我是否需要做一些特别的事情,因为它现在使用键盘。
【问题讨论】:
标签: ios swift2 autolayout