【发布时间】:2013-04-12 17:09:54
【问题描述】:
我在同一部分中有 UITableViewCells,它们之间有间隙。我为每个单元格的 contentView 背景着色,并做了一个 NSLog 以显示它与单元格的高度相同。
不过,他们之间还是有差距的。他们肯定在同一个部分。关于什么可能导致差距的任何想法?
【问题讨论】:
标签: iphone ios objective-c uitableview
我在同一部分中有 UITableViewCells,它们之间有间隙。我为每个单元格的 contentView 背景着色,并做了一个 NSLog 以显示它与单元格的高度相同。
不过,他们之间还是有差距的。他们肯定在同一个部分。关于什么可能导致差距的任何想法?
【问题讨论】:
标签: iphone ios objective-c uitableview
我不确定你是否使用过这个:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 78;
}
并检查了 IB 中的 Cell 确实是 78(只是为了争论)。 然后使用:
tableView.sectionHeaderHeight = 0.0;
并设置tableView的样式:
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
多年来我遇到的最后一个解决方案是,有时出于某种原因,您需要使用像素扩展背景图像。我认为这根本不是一个好的解决方案,因为它并没有真正解决真正的问题,而是在上面贴了一个糟糕的创可贴。
cellFrameBackground.size.height += 1;
【讨论】:
您是否尝试将分隔符样式设置为无?
tableview.separatorType = UITableViewCellSeparatorStyleNone
【讨论】:
如果您说的是 1 个像素的间隙,那就是单元格分隔符。您可以通过在表格视图上设置属性来删除它:
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
如果您想更改该分隔符的颜色,请使用 separatorColor 属性。
如果您说的是大于 1 像素的间隙,您可以发布屏幕截图和您的单元格代码吗?
【讨论】:
要添加到一组很好的答案,有时您只需要扩展 Leeloo 提到的背景高度:
cellFrameBackground.size.height += 1;
然后,让你的单元格剪辑到边界:
cell.clipsToBounds = YES;
然后,瞧。
【讨论】: