在单个 UITableView 中合并纯样式单元格和插入式分组样式单元格

Combining Plain and Inset Grouped Style Cells in a Single UITableView

提问人:Victor Lobe 提问时间:11/8/2023 最后编辑:HangarRashVictor Lobe 更新时间:11/9/2023 访问量:29

问:

我在基于 Swift 的 UIKit 应用程序中有一个 UITableView,它具有纯样式、单个部分和一种具有可变行数的单元格类型。我想添加另一个具有插入分组样式的单元格,但似乎我无法以编程方式更改表视图样式。目前,我已经在原始 UITableView 之上创建了第二个 UITableView,但这不是一个理想的解决方案。

如何在单个 UITableView 中有效地使用这两种不同的单元格样式?

以下是我的设置摘要:

具有纯样式和动态行的现有 UITableView。 需要添加一个具有插入分组样式的单元格。 目前,我已经在原始 UITableView 之上放置了第二个 UITableView,这不是一个干净的解决方案。 我想知道如何在单个 UITableView 中实现这两种单元格样式并实现所需的布局和功能。

任何帮助或指导将不胜感激。谢谢!

如有必要,我可以提供相关的代码片段来说明我当前的实现。

iOS Swift UITableView UIKit的

评论


答:

1赞 benc 11/8/2023 #1

样式是表级常量。

您必须在创建表视图时指定表视图的样式,并且以后无法更改该样式。

https://developer.apple.com/documentation/uikit/uitableview/1614886-init#discussion

没有明显的方法可以按部分更改样式,因此如果您只想做一个表格,则需要在表格布局中实现 的外观。.insetGrouped

但这些样式是相互排斥的,它们只是苹果实现的布局,但细节仍然不透明。

您已经说过您不喜欢“每个部分的不同表格”方法,因此您可能不得不使用 ,然后装饰单元格以对外观进行逆向工程。.plain

评论

1赞 matt 11/9/2023
但是,如果使用集合视图,则可以按部分更改样式。由于列表类型的集合视图基本上是表视图,因此 OP 可以完全放弃使用 UITableView。我们的应用程序只包含单列集合视图;看不到表格视图。
0赞 HangarRash 11/9/2023
@matt 这似乎值得一个正确的答案。
0赞 matt 11/9/2023
@HangarRash OP 没有提供足够的信息让我知道这些信息是否有用。我不知道“添加另一个带有插入分组样式的单元格”是什么意思。