我在UITableView中有一个奇怪的错误,我已经实现了使用自定义单元格。
每个其他单元格底部都有一条白线。此系列仅出现在iPhone 5和iPhone 6上。它不会在iPhone 6+上显示。 iPhone 6模拟器(您可以看到该行)和iPhone 6+模拟器(您看不到该行)提供了两个屏幕截图。
我已尝试过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;
}
然而,所有其他细胞仍然可以看到这条线。关于如何摆脱这条线的任何想法?谢谢!
答案 0 :(得分:0)
请检查故事板中的单元格高度。如果是自定义单元格,则确认单元格高度。
我面临同样的问题,而我的错误就是细胞高度。
同时检查.m文件是否单元格高度方法返回不同的高度。
否则,通过应用不同的颜色检查所有视图。