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

问题描述 投票:1回答:2

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

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

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

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

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

这是自动布局约束屏幕截图。

ios uiscrollview autolayout
2个回答
0
投票

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

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

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

- tableView:heightForRowAtIndexPath: - tableView:estimatedHeightForRowAtIndexPath:


0
投票

我只是面对同样的问题,并且已经写了一个完全相同的pod called TLFormView:一个基于UIScrollView的表单。

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

  • 使用TLFormModel的声明式表单分类法只需扩展它,添加所需的属性即可。没有delegate,没有事件处理,没有样板。
  • 一种处理iPhone和iPad不同布局的好方法
  • 使用NSPredicate的条件可见性,可以访问其他字段中的所有值(例如:当字段B具有特定值时显示字段A)
  • 到位帮助一个弹出窗口
  • 所有的领域都是TLFormFields,扩展UIView所以你可以放置你需要的任何东西。

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

请在此处告知我您的想法或在博客文章中作为评论。此外,任何贡献都非常受欢迎在GitHub repo

© www.soinside.com 2019 - 2024. All rights reserved.