2017-10-19 182 views
0

我想要什么 我尝试在ScrollView中添加一个不可滚动的TableView,但是我失败了,所以我需要你的帮助。 原因是我想拥有一个信息页面,其中包含一些信息以及TableView中的用户列表,以及TableView下面的一些其他UI元素。我只使用故事板,因为我不喜欢以编程方式布置视图。如何正确地在UIScrollView中放置不可滚动的UITableView?

策略 页面可以比屏幕窗口更长,因此是一个ScrollView,因此用户可以向上滚动以显示更多内容。为了显示用户列表,我想使用TableView,这是我想到的第一件事,我认为使用TableView是非常合理的。这个想法是,如果动态添加更多行,TableView增长的时间越长,并且该信息以某种方式传递回ScrollView,然后轮到他调整高度。

测试 因此,我首先试验并测试了一个包含动态文本的UITextView,它按预期工作。如果我在其中放入一些长文本,页面可以上下滚动以显示所有内容。但用TableView测试后,结果不是我想要的。我发现TableView有一个固定的高度,在添加行时似乎没有动态变化。因此,TableView只显示2行而不是10行,因为TableView不会增长。我关闭了TableView的属性'Scrolling Enabled',就像我为UITextView所做的那样。

问题
随着更多行的添加,TableView不会增长。我不知道为什么,但我没有添加高度约束来修复TableView的高度。那么,为什么TableView不会增长?

图片: ScrollView with TextView and 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

回答

1

您可以用单一的tableView实现这一目标。你需要做的是使用customCell。

怎么办?

根据您的设计,您共享的内容可以说您有三种不同类型的东西。

  1. 蓝色单元(包含信息)
  2. 绿色细胞(我不知道它的目的。:))
  3. 用户单元。

所以基本上你需要三种不同CustomCell和 在的cellForRowAtIndexPath方法调用是这样的:

if(indexpath.row == 0) { 
    return BlueCell; 
    } 
else if(indexpath.row == 1) { 
    return GreenCell; 
} 
else { 
    return UserCell; 
} 

希望这有助于。:)

+0

这是一个解决方案,现在我将使用thnx。然而,我非常沮丧,我试图完成的任务并不奏效,我不能放过它,感觉我浪费了很多时间,失败了。 – AndaluZ

+0

如果有帮助,你能接受这个答案吗? :) –

+0

这不是我的问题的确切答案,只是另一个解决方案,所以+1;) – AndaluZ

相关问题