【发布时间】:2012-01-14 21:08:46
【问题描述】:
我有一个主要在界面生成器中构建的小表单:
当用户触摸其中一个文本字段时,我将屏幕的顶部设为可滚动(请注意,当键盘不存在时它不需要任何滚动,并且两个字段都不会隐藏在键盘后面)。
我用很少的代码实现了这一点。我的表单控件都在 UIScrollView 内,加载时它被禁用并且大小为 0x0(默认情况下)。当我检测到键盘的存在时,我启用它并将其调整为 视图的宽度 和 视图的高度 + 键盘大小。然后在移除键盘时禁用滚动视图并调整其大小(我将其设置回 0x0)。
这几乎可以完美运行。除了一个例外(到目前为止):
可滚动区域(或者更确切地说,其中的视图)太高。因为没有键盘的表单不占整个屏幕,我发现我可以滚动到我的视图底部(一个全屏)+键盘高度,而我真正想要的是滚动到视图的 内容 + 键盘高度。
我想我可以简单地缩短视图,使其大小正好适合内容,但界面生成器(xcode 4.2)似乎迫使它占据整个屏幕。尝试在代码中执行此操作也不起作用,因为显然 self.view.frame.size 是不可分配的。我怎样才能实现我正在寻找的东西?具体来说,当键盘出现时,我希望屏幕上半部分的可滚动区域调整大小,以便底部没有太多“松弛”:
【问题讨论】:
标签: ios xcode uiview uiscrollview interface-builder