【问题标题】:Tableview in scrollview when tableview content size increase then textview just below the tableview goes up to the tableview当表格视图内容大小增加时滚动视图中的表格视图然后表格视图下方的文本视图上升到表格视图
【发布时间】:2017-12-12 14:15:20
【问题描述】:
我有 Viewcontroller 在其中设置滚动视图。在滚动视图中,我有一个位于容器中的 tableview,并且就在容器下方,当我将 tableview 框架大小设置为等于内容大小并且 tableview 滚动属性为 false 时,我有一个 textview 和一些其他 UIView,以便只有在内容大小增加时滚动视图才会滚动textview 上升到 tableview 我希望当 tableview 内容增加时 textview 也会下降并且父视图框架大小随着内容大小而增加和减少
【问题讨论】:
标签:
ios
iphone
swift
uitableview
ios-autolayout
【解决方案1】:
这看起来像是 UICollectionViewController 的工作。想看的话here
您可以更好地了解它们是什么以及如何使用它们。
基本上你想把这些 UITableViews、UILabels 和 UIButtons 中的每一个放在 collectionView 的它自己的单元格中(需要安排按钮),然后带有按钮的单元格尝试使用带有图像的堆栈视图。这将自动将不同的部分彼此分开。我知道包含 tableView 的 collectionViewCell 的想法可能看起来很奇怪,但 check this out
另一种解决方案是对约束和自动布局感到疯狂。我不推荐这条路线,因为如果没有明确声明确切的布局,autoLayout 将自行做出决定。基本上,您将通过将 tableView 和标签相互固定以及它们所在的容器来设置约束。
查看 Apple 的文档 here
祝你好运,让我知道进展如何
【解决方案2】:
我建议使用 xib(如果您喜欢故事板)或以编程方式在 Scrollview 控制器中嵌入表格视图。设置默认单元格高度,然后通过获取单元格的数量(通常从数组中的 .count 获得)来计算 Tableview 的高度。
然后,将 tableview 的顶部、左侧和右侧约束约束到其父级。您可以轻松地将它们嵌入到滚动视图中。然后,如果您希望在其下方使用默认文本,您所要做的就是将 textview 的顶部约束到 tableview 的底部。
为按钮做单元格。正如上面的帖子所说,按钮可能最好在 CollectionView 中完成,因此您可以创建默认单元格(xib 再次很有用)或在情节提要中使用原型单元格。在填充数据时,集合视图与表格视图的原理相同,只是格式不同,单元格之间的插入/间距不同。
这应该有帮助!