UIScrollView - 如何定位控件

Posted

技术标签:

【中文标题】UIScrollView - 如何定位控件【英文标题】:UIScrollView - How to position controls 【发布时间】:2011-11-03 17:20:17 【问题描述】:

我很困惑如何将控件放置在超出关联 UIView 的 UIScrollView 上。

我有一个需要填写的长表单,它位于一个长 UIScrollView 上。我已经读过(但不敢相信)没有办法使用 InterfaceBuilder 来定位控件,而是您必须硬编码 X\Y 坐标。在代码中(或在 IB 中,但它们仍然不会显示为所见即所得)

你真的必须用硬编码的坐标来做这一切吗?

如果是这样,实现此目的的最佳方法是什么?如果某些控件可以“隐藏”怎么办...那么您是否需要有代码将所有控件的坐标在页面上进一步向下移动?

更好的方法是将所有控件放在不同的视图上,然后将这些视图添加到 UIScrollView(至少你可以在 IB 中“看到”它们......)

我希望我错过了什么:-)

【问题讨论】:

【参考方案1】:

您不必在代码中完成所有这些操作。

您可以只为您的嵌入式 UIView 提供一个 XIB 文件。这可以和你需要的一样大。然后有一个加载此 XIB 的视图控制器,并将其视图添加到您的滚动视图(适当地设置内容大小。)

至于隐藏控件 - XIB 文件可能无法帮助您。但是您可以隐藏控件并在代码中调整其他控件的坐标。 (并在必要时更改滚动视图的内容大小。)这可能是在滚动视图的内容视图的不同子视图中具有不同控件的原因。

【讨论】:

【参考方案2】:

在 IB 中,您可以在层次结构的顶部创建 UIScrollView 并为其指定所需的高度。然后,您可以根据需要以所见即所得的方式设置元素。完成后,您只需将 UIScrollView 的大小设置为所需的大小,并将其设置在 ViewController 的 UIView 的层次结构下,最后在代码中,将 UIScrollView 的内容大小设置为所需的大小。简单!

我鼓励你阅读这个http://www.uxbooth.com/blog/mobile-form-design-strategies/,如果你想以用户友好的方式设计一个长表单,这是一个很好的建议:)

【讨论】:

以上是关于UIScrollView - 如何定位控件的主要内容,如果未能解决你的问题,请参考以下文章

ios的控件UIScrollView的位置定位---------逐渐积累

如何保持 UIscrollview 框架固定但动态范围

UIScrollView 后面如何与 UIView 交互

通过代理监听UIScrollView的滚动事件 Objective-C语言

UIScrollView 帮助

UIScrollView 内的可选 UITableViewCells