iOS UITableViewCell 间距设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS UITableViewCell 间距设置相关的知识,希望对你有一定的参考价值。

参考技术A

在tableViewCell的contentView 上添加一个view,通过这个view设置间距,所有内容都放到这个view 上

缺点:
如果存在左滑删除,左滑删除按钮的高度是整个cell的高度,看起来和cell内容高度不匹配

比如tableview有10条数据,就设置为10个section,设置section的headerview footerview的高度来实现cell间距,但这种方式只能设置上下间距

缺点:
1.只能设置上下间距
2.如果section headerView或footerView有内容时,此时就无法实现cell间距

缺点:
对于UICollectionView,系统没有相关提供方法来实现左滑删除,需要自定义。较为复杂

通过调整cell的frame,来实现cell的间距

缺点:
左滑删除时,cell滑动到最右端松手,会有一点卡顿,再回弹到正确的位置

参考文章:
https://www.jianshu.com/p/940872e17ac7

UITableviewcell单元格间距

【中文标题】UITableviewcell单元格间距【英文标题】:UITableviewcell spacing between cells 【发布时间】:2012-09-20 09:28:10 【问题描述】:

我正在动态创建UITableView 单元格并在其上添加三个标签。我通过opaque no 和clearcolor 使我的表格变得透明。 但是单元格显示时没有空格。我需要在单元格之间留出空间。 实际上,如果我从 xib 文件加载自定义UITableViewCell,空间会自动出现。如何解决这个问题?

【问题讨论】:

你是在创建 UITableView 并使用它的委托方法来创建单元格吗? 我通过 IB.cell 添加的 Tableview 是使用 cellforrowatindexpath 创建的 在行高和单元格高度之间有所不同... 【参考方案1】:

自定义间距的 UITableView

您可以通过欺骗 tableView 单元格来做到这一点。默认情况下,您只能指定一条线、蚀刻线或无,所以这里是另一种选择。您需要覆盖 tableView 委托方法:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

计算单元格高度及其内容、边距/填充/线宽并返回。将单元格的背景颜色设置为[UIColor clearColor],并将表格背景设置为分隔符所需的颜色。子类 UITableViewCell 并附加一个 backgroundContainerView 并使其成为您的单元格所需的背景颜色。将所有子视图附加到该 backgroundContainerView。

最后,在 UITableViewCell 子类中实现

- (void)layoutSubviews

在这里,您应该使用容器视图来布置子视图,就好像那是整个单元格一样。

【讨论】:

如果使用内置的滑动删除功能会起作用吗?我创建了一个自定义 UITableViewCell 布局,底部有一个透明部分,但删除手势是可见的above it。【参考方案2】:

在 UITableView 中有 2 个属性:separatorStyleseparatorColor。使用它们也许你的分隔符颜色是 clearcolor 所以试着改变它。

【讨论】:

我不能这样使用,因为我有一个表格视图的背景图像,我需要在单元格之间显示该图像。 您需要在单元格之间显示图像,这意味着 UITableViewCell 有一个完整的背景,还是每个单元格都有自己特定的背景? 在一个部分中添加第 1 行的数量,并将部分数量添加为数组中的元素数 .... 我需要为单元格提供背景..每个单元格都具有相同的背景。结果我应该在三个标签内得到一个背景为黄色的单元格,然后是一个空格,然后是另一个相同类型的单元格。 【参考方案3】:

这个问题是由于 TableView 和自定义单元格的高度不同造成的。在 heightForRowAtIndexPath 委托中设置单元格高度。

【讨论】:

以上是关于iOS UITableViewCell 间距设置的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发之有间距的UITableViewCell

UITableViewCell 在 iOS 7 中左右有额外的间距

UITableviewcell单元格间距

UITableViewCell 之间的间距是多少?

iOS9 UITableViewCell 分割线左顶头

具有自定义 UITableViewCell 的 UITableView 上的单元格之间的间距/边距