【发布时间】:2016-07-02 12:05:30
【问题描述】:
我已经在 im 应用上开发了。当用户点击文本字段时,键盘弹出,包含消息的表格视图向上移动,但表格视图的顶部不可见,因为它不在屏幕上。当用户向上或向下移动键盘建议时,它还会导致屏幕变黑
override func viewWillAppear(animated:Bool) {
super.viewWillAppear(animated)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillShowNotification, object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name: UIKeyboardWillHideNotification, object: nil)
}
func keyboardWillShow(notification: NSNotification) {
if let userInfo = notification.userInfo {
if let keyboardSize = (userInfo[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.CGRectValue() {
kbHeight = keyboardSize.height
self.animateTextField(true)
}
}
}
func keyboardWillHide(notification: NSNotification) {
self.animateTextField(false)
}
func animateTextField(up: Bool) {
let movement = (up ? -kbHeight : kbHeight)
UIView.animateWithDuration(0.2, animations: {
self.view.frame = CGRectOffset(self.view.frame, 0, movement)
})
}
如何控制表格视图、文本字段和键盘的显示?
编辑
期望的行为。 从头开始
- 我希望折叠视图键盘(工作正常)
- 显示消息的表格视图(工作正常)
- 和屏幕底部的文本字段(工作正常)
点击文本字段时
- 键盘弹出(工作)
- 文本字段移动到键盘顶部(工作)
- 表格视图显示在文本字段上方的剩余空间中(不起作用,它在文本字段上方但一半溢出屏幕到顶部)
其他错误
- 在键盘顶部显示/隐藏自动完成单词时屏幕变黑
【问题讨论】:
-
您的问题是什么,您的预期行为是什么?也是
ViewController还是TableViewController -
@sken3r.MI , 如何控制表格视图、文本字段和键盘的显示?它是一个视图控制器
-
我对您的问题一无所知。当用户点击文本字段时你想隐藏键盘吗?
-
@emresancaktar 不,当我隐藏键盘时很好。见编辑
-
这对你的理解有帮助吗?
标签: ios swift uitableview keyboard