我想删除(或使它们成为clearColor)UITableView的节头分隔符。设置tableView.separatorStyle = .none
不起作用。我也尝试过来自here的解决方案,但它们都没有真正为我工作(也许是因为答案很老)。我仍然在节标题下方得到这个小分隔符。
我在Storyboard中创建了UITableView并在那里添加了一个UITableViewCell。然后我把它设置为这样的标题:
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let cell = tableView.dequeueReusableCell(withIdentifier: "headerTableViewCell")
return cell
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if section == 1 {
return 49
}
return 0
}
答案 0 :(得分:9)
不知道为什么要在UITableViewCell
方法中返回viewForHeaderInSection
,因此可能会显示UITableViewCell
的分隔符。尝试从contentView
方法返回viewForHeaderInSection
单元格而不是单元格。
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let cell = tableView.dequeueReusableCell(withIdentifier: "headerTableViewCell")
return cell.contentView
}
答案 1 :(得分:2)
试试这个:
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerView = UIView()
headerView.backgroundColor = UIColor.clear
return headerView
}
答案 2 :(得分:1)
我通过以下方式解决了这个问题:
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 0.01
}
答案 3 :(得分:1)
显示覆盖layoutSubviews
删除与单元格相关和与单元格相关的所有单元格分隔符。
@interface MyCustomCell : UITableViewCell
@end
@implementation MyCustomCell
- (void)layoutSubviews {
// don't call [super layoutSubviews]
// can be left empty
// does not harm other UI elements inside the contentView
}
@end
在多单元格部分中,您可能只想删除与部分相关的分隔符(在第一个单元格的顶部和最后一个单元格的底部),并保持插入,单元格间的分隔符显示:
- (void)layoutSubviews {
[super layoutSubviews];
for (UIView *view in self.subviews) {
if ([view isEqual:self.contentView]) continue;
view.hidden = view.bounds.size.width == self.bounds.size.width;
}
}