【发布时间】:2013-07-12 22:05:01
【问题描述】:
在我的视图控制器中,我有 5 个UITextField,每个都从键盘或UIPicker 获取不同的数据。我所有不同的元素都在一个名为scrollView 的滚动视图的子类中。我所有的第一响应者都有一个工具栏作为他们的inputAccessoryView,带有上一个/下一个/完成按钮,它们工作得很好。
我遇到的问题是我无法让滚动条自动向下滚动到下一个 UITextField(可能是)变成 firstResponder 以使其有足够的空间看起来不错,请参阅此屏幕截图以供参考:
我尝试了这段代码,试图获得我正在寻找的卷轴,但到目前为止没有运气......
- (void)keyboardControls:(BSKeyboardControls *)keyboardControls selectedField:(UIView *)field inDirection:(BSKeyboardControlsDirection)direction
{
UIView *view = keyboardControls.activeField.superview.superview;
[self.scroller scrollRectToVisible:view.frame animated:YES];
}
这是我的简单scroller 代码:
[scroller setScrollEnabled:YES];
[scroller setContentSize:CGSizeMake(320, 520)];
如果您能看到我遇到的问题或知道更好的方法来解决这一切,请告诉我...非常感谢您的帮助!谢谢!!
【问题讨论】:
-
您可以通过触摸滚动吗?您需要将滚动视图缩小到新的较小框架或将内容大小增加键盘的高度。
-
不要使用
scrollToRect,这仅在您的矩形不在屏幕上时才有效,请改用contentOffset。 -
查看 Apple 在 Keyboard Management 上的文档,特别是标有“移动位于键盘下方的内容”的部分。
标签: ios objective-c uiscrollview uitextfield