iOS UITableView 错误 - 每个其他 tableview 单元格上都有白线
Posted
技术标签:
【中文标题】iOS UITableView 错误 - 每个其他 tableview 单元格上都有白线【英文标题】:iOS UITableView Bug - White line on every other tableview cell 【发布时间】:2015-10-15 17:16:37 【问题描述】:我在使用自定义单元格实现的 UITableView 中有一个奇怪的错误。
每个其他单元格的底部都有一条白线。这条线只出现在 iPhone 5 和 iPhone 6 上。它不会出现在 iPhone 6+ 上。 iPhone 6 模拟器(您可以看到线条)和 iPhone 6+ 模拟器(您看不到线条)提供了两个屏幕截图。
我在 *** 上尝试了所有解决方案,但都没有奏效。也就是说,我在表格视图中添加了以下方法:
-(void)viewDidLayoutSubviews
[super viewDidLayoutSubviews];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)])
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)])
[self.tableView setLayoutMargins:UIEdgeInsetsZero];
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
if ([cell respondsToSelector:@selector(setSeparatorInset:)])
[cell setSeparatorInset:UIEdgeInsetsZero];
if ([cell respondsToSelector:@selector(setLayoutMargins:)])
[cell setLayoutMargins:UIEdgeInsetsZero];
if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)])
[cell setPreservesSuperviewLayoutMargins:NO];
if ([tableView respondsToSelector:@selector(setSeparatorInset:)])
[tableView setSeparatorInset:UIEdgeInsetsZero];
if ([tableView respondsToSelector:@selector(setLayoutMargins:)])
[tableView setLayoutMargins:UIEdgeInsetsZero];
以及我的自定义单元格的以下方法:
- (UIEdgeInsets)layoutMargins
return UIEdgeInsetsZero;
然而,在其他每个单元格上仍然可以看到这条线。关于如何摆脱这条线的任何想法?谢谢!
【问题讨论】:
您确定是分隔符的问题吗?不在你牢房的某个地方? 您可以尝试为您的单元格、tableView、视图等设置不同的背景颜色,以找出白线的确切来源。 【参考方案1】:请在故事板中检查您的单元格高度。如果是自定义单元格,请确认您的单元格高度。
我遇到了同样的问题,我的错误是单元格高度。
还要检查 .m 文件中的单元格高度方法是否返回不同的高度。
否则,通过应用不同的颜色来检查所有视图。
【讨论】:
既然每个单元格都是相同的自定义类型,为什么高度会不同?以上是关于iOS UITableView 错误 - 每个其他 tableview 单元格上都有白线的主要内容,如果未能解决你的问题,请参考以下文章
UITableView 错误访问在 dequeueReusableCellWithIdentifier 与 Storyboard (iOS5) 上崩溃