具有多个多行标签和 AutoLayout 的 UIScrollView?
UIScrollView with multiple multi-line labels and AutoLayout?
有办法实现吗?我几乎已经尝试了所有方法,但还没有任何效果。
所以基本上我想做的是以下内容:我有一个带有一些标签的滚动视图。所有标签都从服务器获取文本,我将它们的行数设置为 0,以便它们根据文本量更改高度。但是,这不会影响滚动视图的内容大小(即使我的标签对滚动视图的底部、顶部、前导和尾部设置了约束)并且标签离开屏幕并且我无法向下滚动。有人可以为我指明正确的方向,告诉我如何设置约束、视图层次结构等吗?
非常感谢任何帮助! :)
我会考虑使用 UITableView
,它有几个好处:
- 它允许重复使用单元格,如果所有单元格看起来都一样的话
- 当您从服务器获取的值数量增加时,它会管理单元格的回收(当单元格数量变大时会降低内存压力)
- 它允许更多的内容灵活性(设计经常在最后一秒改变或在项目过程中发展)
- 最重要的是,
UITableView
支持自动调整单元格大小(截至iOS8),您需要指定标签和单元格边框之间的约束
有几个资源可以开始:
- 在滚动视图中使用容器视图
- 向超级视图添加约束(前导、尾随、顶部、底部、高度、宽度)
- 将要更新的约束设为 IBOutlet。
- 在该视图中添加所有标签。
- 更新 constrains/frame 标签,使其适合文本。
- 标签高度增加多少,容器高度也应该增加多少。
- 如果标签数量不固定使用自定义标签class添加子视图。
也许您需要了解 ScrollView 如何在 Storyboard 中使用自动布局工作。
晚了,但这为我解决了:
设置前导(我有一个 32pt 插图)、尾随和顶部约束。尾随实际上似乎不会做任何事情..
添加尾部Greater Than or Equal
以避免本地化警报。
最后,给匹配scrollview的label添加一个新的Equal Width
约束。使用常数减去所需的填充(由于镜像我的前导插图,我使用了 64)。
瞧!标签将在 IB 和应用内正确对齐。
在滚动视图中,最后一个视图的底部约束 非常重要。你应该将它的优先级设置为250并把它设置为大于等于.
请记住,您应该只更改最后一个视图 的底部约束,在我的例子中是继续按钮。
有办法实现吗?我几乎已经尝试了所有方法,但还没有任何效果。
所以基本上我想做的是以下内容:我有一个带有一些标签的滚动视图。所有标签都从服务器获取文本,我将它们的行数设置为 0,以便它们根据文本量更改高度。但是,这不会影响滚动视图的内容大小(即使我的标签对滚动视图的底部、顶部、前导和尾部设置了约束)并且标签离开屏幕并且我无法向下滚动。有人可以为我指明正确的方向,告诉我如何设置约束、视图层次结构等吗?
非常感谢任何帮助! :)
我会考虑使用 UITableView
,它有几个好处:
- 它允许重复使用单元格,如果所有单元格看起来都一样的话
- 当您从服务器获取的值数量增加时,它会管理单元格的回收(当单元格数量变大时会降低内存压力)
- 它允许更多的内容灵活性(设计经常在最后一秒改变或在项目过程中发展)
- 最重要的是,
UITableView
支持自动调整单元格大小(截至iOS8),您需要指定标签和单元格边框之间的约束
有几个资源可以开始:
- 在滚动视图中使用容器视图
- 向超级视图添加约束(前导、尾随、顶部、底部、高度、宽度)
- 将要更新的约束设为 IBOutlet。
- 在该视图中添加所有标签。
- 更新 constrains/frame 标签,使其适合文本。
- 标签高度增加多少,容器高度也应该增加多少。
- 如果标签数量不固定使用自定义标签class添加子视图。
也许您需要了解 ScrollView 如何在 Storyboard 中使用自动布局工作。
晚了,但这为我解决了:
设置前导(我有一个 32pt 插图)、尾随和顶部约束。尾随实际上似乎不会做任何事情..
添加尾部
Greater Than or Equal
以避免本地化警报。最后,给匹配scrollview的label添加一个新的
Equal Width
约束。使用常数减去所需的填充(由于镜像我的前导插图,我使用了 64)。
瞧!标签将在 IB 和应用内正确对齐。
在滚动视图中,最后一个视图的底部约束 非常重要。你应该将它的优先级设置为250并把它设置为大于等于.
请记住,您应该只更改最后一个视图 的底部约束,在我的例子中是继续按钮。