當容器視圖彈出時,我有一個UITextField在容器視圖中消失。在同一個容器視圖中是一個UICollectionView,其自定義單元格包含一個UITextField,並且鍵盤對它們工作正常。當UITextField彈出鍵盤時,UIView消失
我在動畫函數中打印出容器視圖的框架,該框架由keyboardWillShow
調用,並且容器視圖的框架對於兩種情況都是相同的,因此它看起來像容器視圖剛好消失(而不是「未移動」正如我所想)當選擇特定的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)
})
}
的截圖可以在這個主題中找到:KeyboardWillShow only moves container UIView for certain UITextFields
編輯:在這一點上,我幾乎可以肯定,那就是與我擰自動佈局約束。
是您的文本字段/ ContainerView設置,使得顯示的鍵盤,當他們移動,從而領域沒有得到覆蓋由鍵盤(隱藏)? – BonanzaDriver
是的,這就是爲什麼我移動視圖 – Liumx31
我有相同的情況,當我關閉AutoLayout時,它工作正常。所以我可以確認這與AutoLayout/Constraints有關 – Vincent