如何在 UITableViewCells 之间添加边距而不被黑客攻击

Posted

技术标签:

【中文标题】如何在 UITableViewCells 之间添加边距而不被黑客攻击【英文标题】:How to Add Margin Between UITableViewCells Without Being Hacky 【发布时间】:2015-09-22 15:13:09 【问题描述】:

我在这里看到的许多解决方案包括将单元格的背景更改为图像,并为行使用部分,而不仅仅是行本身。我希望只有两个部分,并让每个单元格在点击时扩展高度,因此这些解决方案都不起作用。

我看到一种解决方案包括在 layoutSubviews() 函数中设置单元格的框架,如下所示:

    override func layoutSubviews() 
        super.layoutSubviews()

        self.frame = CGRectOffset(self.frame, 0, 10);
    

但是,当我这样做时,它只会为一个单元格提供边距,而且只有当我点击该单元格时。

有没有一种万无一失的方法可以在 UITableViewCells 之间添加间距,而不会在此过程中破坏单元格布局?

【问题讨论】:

【参考方案1】:

我昨天用自动布局很容易做到了。

我将单元格的背景和它的内容视图设置为清除,然后我创建了一个新视图并在其周围设置约束并将我的标签放入其中。高度会根据标签动态变化,因此我需要使用 UITableViewAutomaticDimension 作为行高并给它一个估计的行高。

我不明白为什么这也不适用于在水龙头上展开它,您可能只需要重新加载单元格。

【讨论】:

我也这样做,自动布局是你的朋友! 一直以来......我不知道它是如此简单,真正的非hacky方法,谢谢。 好主意。谢谢。 :-)【参考方案2】:
    让单元格和它的 contentView 透明 contentView addSubview customContentView 并在 customContentView 上布局您的单元格 customContentView 固定到 contentView 顶部前导尾随偏移量 0 但固定到底部偏移量 10 //边距高度

【讨论】:

我想我们俩的想法是一样的

以上是关于如何在 UITableViewCells 之间添加边距而不被黑客攻击的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式添加到 NSMutableArray 并将其显示在 uitableviewcells 上?

如何在 UITableView 中添加背景视频并在滚动 UITableViewCells 时使其固定?

向 UITableViewCells 添加子视图会导致滚动时出现问题

在 UITableViewController 中的 UITableViewCells 之间进行通信

如何创建具有复杂内容的 UITableViewCells 以保持滚动流畅

保存 UITableViewCells 的顺序