我在IB中制作了一个自定义UITableViewCell,但出于某种原因,尽管选择了分隔符的单行选项,但我的表上没有分隔线。
之前有没有发生过这种情况?是什么给了什么?
谢谢!
答案 0 :(得分:53)
即使这是一个老帖子,也只是抬头:
如果您正在使用模拟器并且UITableView分隔符未在单元格之间显示,则可能是由于您的窗口比例太小。
转到Window-> Scale-> 100%
进行更改答案 1 :(得分:51)
IB中的UITableViewCell是否与覆盖drawRect:
的UITableViewCell子类相关联?如果是这样,请确保您正在调用超级实现,因为这是在底部绘制线的内容。如果您要覆盖layoutSubviews
,请确保没有视图遮挡单元格的底部。
答案 2 :(得分:25)
在我的情况下,我忘记在覆盖layoutSubviews方法后调用[super layoutSubviews]。我花了两个小时才发现问题。
答案 3 :(得分:2)
在我的情况下,我必须设置tableView
的separatorStyle属性 tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
答案 4 :(得分:1)
我在UITableView class reference中找到了separatorStyle
。
它说它会将separatorStyle添加到委托方法tableView:cellForRowAtIndex:返回的单元格中。
所以,我认为你应该修改UITableView实例上的style属性。
答案 5 :(得分:0)
可能是一个不太可能的案例,但还有另一个可能的原因。
我有一个名为AddressBookTableView的自定义UITableView
,它包含在我的一个视图控制器的.XIB中。我注意到的是它已被添加为UIView
元素,其自定义类被指定为AddressBookTableView。我删除了这个元素并添加了一个UITableView
元素,而我的类再次指定为AddressBookTableView,并且神奇地重新出现了分隔符!
花了我很长时间才找到这个...
确保您的自定义UITableView
.XIB元素确实是自定义UITableView
元素,而不是重命名为UIView
元素。
说实话,我很惊讶这个错误中唯一明显的错误就是隔离器丢失了。除此之外,UITableView仍能正常运行吗?
答案 6 :(得分:0)
如果以编程方式将子视图添加到单元格,请确保添加子视图
到 cell.contentView 而不是 cell
[cell.contentView addSubview:subview];
答案 7 :(得分:0)
对于任何人看到这个:我的问题是我有多个部分,每个部分的第一个单元格没有分隔符。在我的表视图中,我覆盖了heightForHeader函数(返回0)。删除此项修复了问题。