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 中缓存图像

在 iOS 的 UITableView 中滚动时索引错误

在UITableView ios的每个部分中选择一行?

iOS 7 UITableView:是错误还是我?

iOS7上的UITableView分隔符颜色错误

UITableView 错误访问在 dequeueReusableCellWithIdentifier 与 Storyboard (iOS5) 上崩溃