UITableView 在 iOS8 中为某些单元格显示错误位置的分隔符
Posted
技术标签:
【中文标题】UITableView 在 iOS8 中为某些单元格显示错误位置的分隔符【英文标题】:UITableView displays separator at wrong position in iOS8 for some cells 【发布时间】:2014-09-20 09:37:41 【问题描述】:我们有一个 UITableView,它在 ios7 上运行良好,但是当我在 iOS8 模拟器中尝试时,我发现大多数单元格的单元格分隔符放置不正确。奇怪的是,有些单元格正确显示了分隔符。
见附图:
我这样设置单元格高度:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
return 70.0f;
你知道发生了什么吗?谢谢!
编辑:
我在此期间使用的解决方法是禁用分隔符...
[tableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
...在单元格视图中自己绘制...
UIView* separator = [[UIView alloc] initWithFrame:CGRectMake(20, cellHeight-1, frame.size.width - 40, 1)];
separator.layer.borderWidth = 1;
separator.layer.borderColor = [[UIColor grayColor] CGColor];
[self addSubview:separator];
...但我不想这样做。
【问题讨论】:
虽然这应该可以工作,但您可以尝试在 TableView 本身上设置 rowHeight 属性吗? 谢谢,但设置rowHeight
并没有改变任何东西... :(
你在使用 AutoLayout 吗?
不,它是由代码构建的 UITableView。我想我可以从代码中启用 AutoLayout,但我没有。
感谢您的提问。我遇到了完全相同的问题,iOS 8 中的分隔符关闭位置,但它在 iOS 7 中很好。我正在使用与现在相同的解决方法。
【参考方案1】:
我遇到了同样的问题,我是这样解决的:
如果您为表格视图使用自定义单元格并且您已覆盖 layoutSubviews,则需要在方法开头调用它的超级视图方法:
- (void)layoutSubviews
[super layoutSubviews];
// Your implementation
【讨论】:
好吧,在这上面浪费了 1 个小时,我想写“谢谢!”看到我在 2014 年已经感谢你了。 不适合我,即使我有自定义单元格的 xib;当我在 xib 中更换配件时,它也被绘制在错误的位置。内容视图也没有填满它的大小和表格视图 迪杰姆,谢谢你的回答。它有助于在 iOS 14 发布时解决 UITableView 中选定的灰色背景颜色。以上是关于UITableView 在 iOS8 中为某些单元格显示错误位置的分隔符的主要内容,如果未能解决你的问题,请参考以下文章
如何在 UITableView 单元格中添加标签和图像视图的数量
在 iOS8 的 Interface Builder 中向 UITableView 添加静态单元格?内容部分未显示
如何在 UITableView 的单元格中为 UIImageView 获取 touchesMoved?