iOS UITableView Bug - 每个其他tableview单元格上的白线

时间:2015-10-15 17:16:38

标签: ios objective-c uitableview

我在UITableView中有一个奇怪的错误,我已经实现了使用自定义单元格。

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

iphone 6 screenshot enter image description here

我已尝试过stackoverflow上的所有解决方案,但它们都没有工作。也就是说,我在表格视图中添加了以下方法:

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

然而,所有其他细胞仍然可以看到这条线。关于如何摆脱这条线的任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

请检查故事板中的单元格高度。如果是自定义单元格,则确认单元格高度。

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

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

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