【发布时间】:2010-07-18 22:58:48
【问题描述】:
我有一个视图控制器,用于具有六个 UITextField 的视图。每当用户选择一个文本字段时,我都需要向上滚动。所以文本字段都将视图控制器设置为它们各自的代表。当委托方法触发时,它会调用一个滚动方法来向上滚动(如果键盘正在出现)或向下滚动(如果它正在消失)。滚动方法如下所示:
- (void) scroll: (CGFloat) distanceUp {
[UIView beginAnimations:@"Scroll" context:NULL];
//move some stuff up by distanceUp, or down if distanceUp is negative.
[UIView commitAnimations];
}
如果用户选择一个文本字段,输入一个值,然后点击键盘上的 DONE 按钮,则可以正常工作。
当用户直接从一个文本字段直接切换到另一个时,就会出现问题。在这种情况下,发生的情况是视图向下跳转,然后向上滚动。显然,我更希望它保持原样。我如何让它做到这一点?
【问题讨论】:
-
这似乎只是模拟器的问题(我以前遇到过),你在设备上测试过吗?
-
您是否考虑过使用 scrollView 作为 parentView 来处理所有需要滚动的内容?您可以使用 UIKeyboard-Notificatins 而不是 textFields 委托来确定何时需要滚动。