当UITextFieldpopup键盘时,UIView消失

我有一个容器视图内的UITextField,当popup容器视图的键盘消失。 在同一个容器视图中是一个UICollectionView,其自定义单元格包含一个UITextField,键盘对它们来说工作得很好。

我在keyboardWillShow调用的animation函数中打印出容器视图的框架,并且容器视图的框架对于两种情况都是相同的,所以看起来像容器视图刚好消失(而不是像我想的那样“不移动”)当select特定的UITextField时。 相关的代码是:

 func keyboardWillShow(notification: NSNotification) { if let userInfo = notification.userInfo { if let keyboardSize = (userInfo[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() { kbHeight = keyboardSize.height self.animateDurationView(true) } } } func keyboardWillHide(notification: NSNotification) { self.animateDurationView(false) } func animateDurationView(up: Bool) { var movement = up ? -kbHeight : kbHeight println(movement) UIView.animateWithDuration(0.3, animations: { self.durationView.frame = CGRectOffset(self.durationView.frame, 0, movement) println(self.durationView.frame) }) } 

截图可以在这个线程中find: KeyboardWillShow只移动容器UIView某些UITextFields

编辑:在这一点上,我几乎可以肯定,这是自动布局约束,正在与我搞砸。

尝试在每个animation事务结束时添加commitAnimations :)我也是我遇到了这个问题…现在它工作正常..您可以将委托添加到文本字段,您可以将它的委托方法DidBeginEditing和DidEndEditing方法的文本字段:)

刚刚有同样的问题。 我所做的错误是试图将运动应用于内部视图。 移动最外面的视图使其工作,因为这个外部视图没有任何自动布局约束。

所以要回答这个问题 – 如果有其他人应该到这里只移动self.view