【发布时间】:2017-03-10 06:04:44
【问题描述】:
我正在构建一个信使应用程序。
我目前的键盘通知功能如下:
func handleKeyboardNotification(notification: NSNotification) {
if let userInfo = notification.userInfo {
let keyboardFrame = userInfo[UIKeyboardFrameEndUserInfoKey]?.CGRectValue()
print(keyboardFrame)
let isKeyboardShowing = notification.name == UIKeyboardWillShowNotification
bottomConstraint?.constant = isKeyboardShowing ? -keyboardFrame!.height : 0
UIView.animateWithDuration(0, delay: 0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
self.view.layoutIfNeeded()
}, completion: { (completed) in
if isKeyboardShowing {
let indexPath = NSIndexPath(forItem: self.messages!.count - 1, inSection: 0)
self.collectionView?.scrollToItemAtIndexPath(indexPath, atScrollPosition: .Bottom, animated: true)
}
})
}
}
(bottomConstraint.constant是指位于屏幕底部或键盘框架顶部的消息输入文本字段)
但是,我希望完成参数中的操作与键盘打开同时发生,而不是在键盘打开之后发生。目前,当我关闭键盘时,它似乎自动布局很好,只是在我打开它时没有。
到目前为止,我已经尝试了很多方法,但均无济于事。 有什么建议吗?
【问题讨论】:
标签: ios swift autolayout uicollectionview core-animation