iOS UITableView Bug - 每隔一个tableview单元格上的白线

问题描述:

我在UITableView中使用自定义单元格实现了一个奇怪的错误。iOS UITableView Bug - 每隔一个tableview单元格上的白线

每个其他单元在其底部都有一条白线。此行仅出现在iPhone 5和iPhone 6上。它不会在iPhone 6+上显示。从iPhone 6模拟器(您可以看到该线路)和iPhone 6+模拟器(您没有看到该线路)提供了两个屏幕截图。

iphone 6 screenshotenter image description here

我试过计算器上的每一个解决方案,但他们都不工作。也就是说,我已经添加了下面的方法来我的表视图:

-(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; 
} 

但该行仍看到其他各小区。任何想法如何摆脱这条线?谢谢!

+0

你确定这是一个分隔符问题吗?不在你的牢房里? – almas

+0

您可以尝试为单元格,tableView,视图等设置不同的背景颜色,以准确找出白线的来源。 – almas

请在storyboard中检查您的细胞高度。如果是自定义细胞,请确认您的细胞高度。

我面临同样的问题,我的错误是细胞高度。

另外检查.m文件单元格高度方法是否返回不同的高度。

否则通过应用不同的颜色来检查所有视图。

+0

鉴于它的每个单元格都是相同的自定义类型,为什么高度不同? – user3298872