我的应用程序由具有动态高度行的 UITableView
组成,所有这些都具有 AutoLayout(以编程方式)。
我的 UITableView
没有任何分隔符,我自己在每一行上绘制它们(只有一个 1px 的 UIView...)。因此 UITableView
设置为没有任何分隔符。
这很好用。但是有些随机的时间,特别是当 View 中有很多不同的行高时,一些行之间会出现一些分离。这使得背景(橙色)可见并且看起来像一个错误(见下图)。
我有点认为这是 iOS 的一个错误实习生,同时管理每行的高度,它可能是系统尝试显示的接近 0 的值,因此显示 1px 高度线。
我愿意接受所有可能成为解决方案的建议。
编辑
我添加了一张更大的图片,可以很好地说明问题。
我无法添加 cellForRowAtIndexPath
代码,因为它非常复杂。
我能说的是:
- 考虑到内容,单元格 1、3、5 具有动态高度。
- 单元格 3、5 属于同一类型,并且可以在它们之间重复使用
- cells 2, 4 属于同一类型,可在它们之间重复使用,并且高度固定
- 如果我不显示第 2 行和第 3 行,问题就不会出现(但我可以在其他不同的情况下,它真的有点随机)。
重要说明:即使使用完全相同的数据,问题也不会出现在模拟器上。
编辑 2
下面是我如何为我的单元格设置白色背景
self.backgroundColor = [UIColor clearColor];
self.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageWithColor:[UIColor whiteColor]]];
最佳答案
问题可能是由于您的代码提供的动态单元格高度的小数部分小于一个视网膜像素 (0.5)。尝试四舍五入您在 - tableView:heightForRowAtIndexPath:
中返回的值(如果您还没有四舍五入),看看是否有帮助。
关于ios - UITableView 行分隔符问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22297178/