在iOS中使用autolayout填充UIScrollView及其内容

时间:2015-06-24 10:36:17

标签: ios uiscrollview autolayout

我正在制作一个基于表单的UIScrollView,它将包含一些标签和文本字段。

我的ScrollView高度将根据iOS设备高度增加。

PS:我不想为Scrollview的每个元素添加约束,因为在我的情况下可能有100个表单字段。

iphone 4 inch

iphone 3.5 inch

我想要的是,完全占据我的scrollView的内部内容如下:

Requirement

到目前为止,没有特殊限制,按钮标有底边,滚动视图从顶边固定。此外,还定义了scrollview和button之间的垂直间距。

这是autolayout约束截图。

enter image description here

2 个答案:

答案 0 :(得分:0)

如果标签的数量是可变的,我建议在代码中而不是在Interface Builder中进行。

在代码中,您可以使用循环将每个标签设置为与其上方的标签具有相同的宽度/高度。您可能希望将其高度设置为> =最小值。务必将第一个标签与顶部锚定,最后一个标签与底部标记。

但这可能很麻烦,为什么不只使用UITableView?您可以修改行高以让单元格完全占据视图。

- tableView:heightForRowAtIndexPath: - tableView:estimatedHeightForRowAtIndexPath:

答案 1 :(得分:0)

我只是遇到了同样的问题,并且已经编写了一个pod called TLFormView来完成这个问题:基于for (var i = 0; i < data.length; i++) { if (data[i].id === pageID) { accessToken = data[i].access_token; break; } } if (accessToken === "") { alert("You are not allowed to post."); } 的表单。

它还有一些很好的功能,如:

  • 带有TLFormModel的声明式表单分类法只需对其进行扩展,添加所需的属性即可。没有UIScrollView,没有事件处理,没有样板。
  • 处理iPhone和iPad不同布局的好方法
  • 使用delegate的条件可见性,可以访问其他字段中的所有值(例如:当字段 B 具有特定值时,显示字段 A )< / LI>
  • 帮助使用popover
  • 扩展NSPredicate的所有字段均为TLFormFields,因此您可以随意放置任何内容。

您可以使用UIView从命令行直接尝试。 如果你想了解更多,我写了一篇关于它的博客文章here

请在此处告知我您的想法,或在博文中留言。在GitHub repo

中也非常欢迎任何贡献