iOS UITableView Bug - 每隔一个tableview单元格上的白线
问题描述:
我在UITableView中使用自定义单元格实现了一个奇怪的错误。iOS UITableView Bug - 每隔一个tableview单元格上的白线
每个其他单元在其底部都有一条白线。此行仅出现在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;
}
但该行仍看到其他各小区。任何想法如何摆脱这条线?谢谢!
答
请在storyboard中检查您的细胞高度。如果是自定义细胞,请确认您的细胞高度。
我面临同样的问题,我的错误是细胞高度。
另外检查.m文件单元格高度方法是否返回不同的高度。
否则通过应用不同的颜色来检查所有视图。
+0
鉴于它的每个单元格都是相同的自定义类型,为什么高度不同? – user3298872
你确定这是一个分隔符问题吗?不在你的牢房里? – almas
您可以尝试为单元格,tableView,视图等设置不同的背景颜色,以准确找出白线的来源。 – almas