我想要什么 我尝试将一个不可滚动的TableView添加到ScrollView中,但是我没能成功,所以我需要你的帮助。 原因是我希望有一个Info页面,其中包含一些信息以及TableView中的用户列表以及TableView下面的一些其他UI元素。我只使用Storyboard,因为我不喜欢以编程方式布局视图。
策略 页面可以比屏幕窗口可以容纳的长,因此是ScrollView,因此用户可以向上滚动以显示更多内容。为了显示用户列表,我想使用TableView,这是我想到的第一件事,我认为使用TableView是非常合乎逻辑的。这个想法是,如果动态添加更多行,则TableView增长的时间越长,并且信息以某种方式传递回ScrollView,ScrollView轮流调整其高度。
测试 因此,我首先使用包含动态文本的UITextView进行实验和测试,该文件按预期工作。如果我在其中放入一些长文本,页面可以向上和向下滚动以显示所有内容。但在使用TableView测试后,结果并非我想要的。我发现TableView有一个固定的高度,在添加行时似乎没有动态变化。因此,TableView只显示2行而不是10行,因为TableView不会增长。我像UITextView那样关闭了TableView的属性“Scrolling Enabled”。
问题
随着添加更多行,TableView不会增长。我不知道为什么,但我没有添加高度约束来修复TableView的高度。那么为什么TableView不会成长?
一些教程的来源:
https://www.natashatherobot.com/ios-autolayout-scrollview/
https://medium.com/rocknnull/ios-working-with-uiscrollview-uitextview-and-auto-layout-afa39fe2cac8
https://medium.com/disblu/scroll-view-auto-layout-in-xcode-8-7f43e82fe33
答案 0 :(得分:1)
您可以使用单个tableView实现此目的。您需要做的是使用customCell。
怎么做?
根据您的设计,您分享的内容可以说您有三种不同类型的东西。
所以基本上你需要三种不同的CustomCell和 在 CellForRowAtIndexPath 方法中调用如下:
if(indexpath.row == 0) {
return BlueCell;
}
else if(indexpath.row == 1) {
return GreenCell;
}
else {
return UserCell;
}
希望这会有所帮助。 :)