调整Iphone ScrollView的大小会中断字段

时间:2011-06-21 18:19:29

标签: iphone objective-c uiscrollview

我有一个关于屏幕高度大小的表格,当键盘弹出时我试图调整滚动视图框架的大小,这很好用。找到了很多很棒的教程。但是弹出键盘后我只能点击前4个字段(巧合的是键盘上方的字段)。我仍然可以使用tab导航到较低的那些并在键盘弹出之前单击它们,但我无法滚动到较低的文本字段并单击它。

我根本没有做太多代码,但我不明白为什么会这样做。

- (void) makeRoomForKeyboard:(NSNotification *)notif {
     float keyboardHeight = [[[notif userInfo] objectForKey:UIKeyboardBoundsUserInfoKey] CGRectValue].size.height;
     scrollForm.frame = CGRectMake(0, 0, scrollForm.frame.size.width, windowHeight-keyboardHeight);
}

我将其中一个字段放在较高的字段所在的较高位置,并且它再次正常工作。我猜测有一个矩形或者我没有设置的东西会触发触摸事件等。

2 个答案:

答案 0 :(得分:1)

我认为除了调整框架外,还需要调整UIScrollView的内容区域。

如果您的UIScrollView最初尺寸正确,无需滚动即可显示所有内容,您可以这样说:

scrollForm.contentSize = scrollForm.frame.size;
scrollForm.frame = CGRectMake(0, 0, scrollForm.frame.size.width, windowHeight-keyboardHeight);

这应该允许您滚动到键盘覆盖的滚动视图区域。

答案 1 :(得分:1)

不要更改scrollForm框架,而是设置底部的contentInset。