是否可以只滚动 UITableview 的一部分并禁用其他部分?

Is it possible to scroll only one section of a UITableview and disable others?

假设我在 TableView 中有 3 个部分。我只想通过保持默认高度来启用滚动到索引 1 处的部分。这是可以实现的吗?

您可以将两个独立的 UITableViews 组合在一起。

第一个显示您的第一个部分并具有固定的框架高度。在此 UITableView 内,滚动将像往常一样启用和可能。

UITableView 下方,只需添加另一个即可。你可以这样做,例如在情节提要中通过将它们彼此约束(第一个的底部等于第二个的顶部)。第二个 UITableView 将显示剩余的两个部分,您可以设置一个标志来禁用滚动,就可以了!

我看到的一个问题是(尤其是在较小的设备上)第二个 UITableView 中可能没有足够的 space 来显示全部内容。一种解决方法是将上部 UITableView 限制为恰好等于 the view's total height 减去 The content size of the second UITableView 的高度。不过,您必须以编程方式执行此操作。

我希望你明白了,如果没有请告诉我,我会尽量提供截图。

-- 编辑--

也许我问错了你的问题。如果你想让 middle 部分可滚动,你可以使用相同的方法,但即使 three UITableViews 或者考虑添加简单的 UIViewsUITableView 的上方和下方。然后,您必须将内容从 UITableViewCells 移至这些视图。

我想到的另一个想法是 UITableViewHeaderFooterViews。您可以将任何 UIView 想要粘在某个部分上方的内容排队为 UITableViewHeaderFooterView.

如您所见,那里甚至还有很多选择:)