带有标题部分的插入分组 UITableView

Posted

技术标签:

【中文标题】带有标题部分的插入分组 UITableView【英文标题】:Inset Grouped UITableView with Header Section 【发布时间】:2020-08-05 08:53:37 【问题描述】:

我使用了 UITableView 和两个原型单元格和 Inset Grouped 样式

没有viewForHeaderInSection 输出就可以了

添加viewForHeaderInSection后输出会是这样的

预期输出

这是我的代码

extension DashboardVC:UITableViewDelegate, UITableViewDataSource 
    
    func numberOfSections(in tableView: UITableView) -> Int 
        return 4
    
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        return 4
    
    
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat 
        return 45
    
    
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat 
        return UITableView.automaticDimension
    
    
    func tableView(_ tableView: UITableView, estimatedHeightForHeaderInSection section: Int) -> CGFloat 
        return 70
    
    
    func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? 
        let headerCell = tableView.dequeueReusableCell(withIdentifier: "TblHeaderCell") as! TblHeaderCell
        return headerCell
    
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: "TblSectionCell", for: indexPath) as! TblSectionCell
        return cell
    

【问题讨论】:

【参考方案1】:

首先,Inset Grouped tableView 有额外的对齐属性...

如果您使用默认单元格并简单地设置titleForHeaderInSection,您会看到部分标题中的文本与单元格中的文本对齐。

此外,Inset Grouped行部分的角变圆 -- 它不包括部分标题。

以下是使用普通 UIView 作为节标题视图的外观:

放大一点:

为了获得您想要的视觉输出,我认为您需要将“标题单元格”用作该部分的第一行,并将“部分单元格”用作其余行:

我猜您的部分标题中的“向下箭头/V 形”表示您要展开/折叠部分?如果是这样,您需要重构代码以在该部分折叠时仅显示第一行。

另一种选择是不使用Inset Grouped,而是自定义单元格以将节标题的顶角和节中最后一个单元格的底角倒圆...或圆角部分折叠时标题的所有 4 个角。

【讨论】:

我已经知道如何手动完成我只想知道如何直接使用 Inset Grouped 属性 @NikunjKumbhani - 这个解决方案使用Inset Grouped。我的观点是,你不能使用节标题来设计你的设计,因为 Inset Grouped 会圆化节的角并将标题保留为非圆角矩形。

以上是关于带有标题部分的插入分组 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 是不是支持带有矩形(非圆形)部分的分组样式?

带有 UITableView ui 故障的 UISearchController

按月/年分组 FechedResults 以显示带有部分的 swiftui 列表

带有使用数组字典的部分的 SwiftUI 列表

分组 UITableView 35 点/像素顶部插入/填充

iOS - 表格视图 - 静态单元格(分组) - 更改部分标题文本颜色