目标c-调整Iphone滚动视图的大小会打断字段



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

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

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

我把一块不起作用的田地放在好田地的更高的地方,它又起了作用。我猜有一个rect或我没有设置的东西触发了触摸事件或其他什么。

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

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

如果你的UIScrollView最初是正确的大小,可以在不滚动的情况下显示所有内容,你可以这样说:

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

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

最新更新