我有一个我在TableViewController
中实现的自定义分隔符,并希望将其隐藏在每个部分的最后一行,因为它会偏移我的自定义部分标题的显示。
我在故事板中使用了原型单元格,类型为TableViewController
,单元格正在实现SessionTableViewCell
标识符。
我也有一个自定义SessionTableViewCell
课程,但目前这是空的。
我遇到的问题是,当TableView
加载时当前代码有效,但当滚动到另一个部分然后再将分隔符应用到最后一个单元格时。
我认为问题在于在此方法中重用单元格,但我也尝试在我的SessionTableViewCell
子类中创建分隔符,然后在我的TableViewController
中引用它,但是同样的行为仍然存在。
SessionTableViewController.swift
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "SessionTableViewCell") as! SessionTableViewCell
cell.sessionStartLabel.text = sessionData[indexPath.row].start
cell.sessionEndLabel.text = sessionData[indexPath.row].end
cell.sessionScoreLabel.text = sessionData[indexPath.row].score
let screensize = UIScreen.main.bounds
let separatorHeight = CGFloat(7.0)
let customSeparator = UIView.init(frame: CGRect(x: 0, y: cell.bounds.size.height - separatorHeight, width: screensize.width, height: separatorHeight))
customSeparator.backgroundColor = Config.tableViewBackgroundColor
cell.addSubview(customSeparator)
let rowsInSection = tableView.numberOfRows(inSection: indexPath.section)
let lastRowInSection = rowsInSection - 1
if indexPath.row != lastRowInSection {
customSeparator.isHidden = false
} else {
customSeparator.isHidden = true
}
return cell
}
答案 0 :(得分:1)
分隔符一次又一次地添加。
当您尝试隐藏分隔符时,它会隐藏最近添加的分隔符视图。
在awakeFromNib()
SessionTableViewCell
中创建您的分隔符,并将属性customSeparator
添加为SessionTableViewCell
的实例变量。
它应该工作正常。
答案 1 :(得分:0)
我认为我得到了你的问题,并提出了另一种选择:
您可以将部分页脚设置为空框架。
CGRectZero
我用表格页脚实现了类似的场景。 对不起,我是swift的新手,稍后会尝试发布一些快捷的代码。 与此同时,你可以尝试类似的东西:
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
答案 2 :(得分:0)
尝试使用
self.tableView.tableFooterView = UIView()
答案 3 :(得分:0)
在添加
之前删除自定义分隔符let customeView = cell.contentView.viewWithTag(200) as! UIView
if customeView != nil
{
customeView.removeFromSuperview()
}
let screensize = UIScreen.main.bounds
let separatorHeight = CGFloat(7.0)
let customSeparator = UIView.init(frame: CGRect(x: 0, y: cell.bounds.size.height - separatorHeight, width: screensize.width, height: separatorHeight))
customSeparator.backgroundColor = Config.tableViewBackgroundColor
customSeparator.tag = 200
cell.addSubview(customSeparator)