【问题标题】:How to put non-scrollable UITableView in UIScrollView correctly?如何正确地将不可滚动的 UITableView 放入 UIScrollView?
【发布时间】:2018-03-31 07:06:01
【问题描述】:

我想要什么 我尝试将不可滚动的 TableView 添加到 ScrollView 中,但未能成功,因此需要您的帮助。 这样做的原因是我想要一个 Info 页面,其中包含一些信息以及 TableView 中的用户列表以及 TableView 下方的一些其他 UI 元素。我只使用 Storyboard,因为我不喜欢以编程方式布局视图。

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

测试 因此,出于某种原因,我首先使用包含动态文本的 UITextView 进行试验和测试,该文本按预期工作。如果我在里面放一些长文本,页面可以上下滚动以显示所有内容。但是在使用 TableView 对其进行测试后,结果并不是我想要的。我发现 TableView 有一个固定的高度,在添加行时似乎不会动态改变。结果,TableView 只显示 2 行而不是 10 行,因为 TableView 没有增长。我像 UITextView 一样关闭了 TableView 的属性“启用滚动”。

问题
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

【问题讨论】:

    标签: ios xcode uitableview uiscrollview storyboard


    【解决方案1】:

    您可以使用单个 tableView 来实现此目的。你需要做的是使用customCell。

    怎么做?

    根据您分享的设计,假设您拥有三种不同类型的东西。

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

    所以基本上你需要三种不同的 CustomCell 和 在 CellForRowAtIndexPath 方法调用如下:

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

    希望这会有所帮助。 :)

    【讨论】:

    • 这是我现在使用的解决方案,谢谢。但是,我很沮丧,以至于我试图完成的事情没有奏效,我就是放不下,感觉就像我浪费了很多时间而失败了。
    • 这不是我问题的确切答案,只是另一种解决方案,所以 +1 ;)
    猜你喜欢
    • 2019-11-07
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-05
    • 2011-03-26
    • 1970-01-01
    相关资源
    最近更新 更多