【发布时间】:2015-09-09 22:31:21
【问题描述】:
我的应用有两个视图,一个在屏幕的上半部分,一个在屏幕的下半部分。上半部分视图称为mainView,下半部分称为tableView。我在主视图底部的主视图中有一个 UITextField。因此,我得到了 tableView 的高度和键盘之间的差异,因此我可以将 mainView 向上/向下移动到足以使键盘直接位于 uitextfield 下方。我在下面使用的代码适用于 iphone 4s 和 iphone 5,但任何更大的代码都会在文本字段和键盘之间留下一点空白。我该如何解决这个问题?
func keyboardShown(notification: NSNotification) {
let info = notification.userInfo!
let value: AnyObject = info[UIKeyboardFrameEndUserInfoKey]!
let rawFrame = value.CGRectValue
let keyboardFrameHeight = view.convertRect(rawFrame, fromView: nil).height
let bottomSpace = tableView.bounds.height
let spaceDifference = (keyboardFrameHeight - bottomSpace)
view.layoutIfNeeded()
self.mainViewProportionalHeight.constant -= spaceDifference
animLayout(0.5)
}
重申:
mainView = 视图的上半部分
tableView = 视图的下半部分
在mainView的底部附加了一个UITextField,这样mainview的底部=mainView的底部。基本上,我试图在键盘上方对齐 mainView,中间没有任何空格。
【问题讨论】:
-
设置断点,
keyboardFrameHeight或bottomSpace是否是分数? -
什么是约束 mainViewProportionalHeight??空白区域是什么样子的?
-
两者都不是小数。 mainViewProportionalHeight 是主视图的比例高度(如果还不够清楚:P)常数将其向上/向下移动您设置的点数。 “空白”(抱歉,不清楚)是键盘和主视图底部(文本字段)之间的空间。键盘和主视图底部之间应该有 0 个空间。感谢您的评论!我这辈子都想不通:)