gpt4 book ai didi

ios - 自定义 UITableView 分隔符在 View 加载时正确显示,但在单元格滚动出 View 并返回时默认为不需要的行为

转载 作者:可可西里 更新时间:2023-11-01 02:03:42 25 4
gpt4 key购买 nike

我在 TableViewController 中实现了一个自定义分隔符并希望将它隐藏在每个部分的最后一行,因为它会抵消我的自定义部分标题的显示。

我在我的 Storyboard中使用了一个类型为 TableViewController 的原型(prototype)单元格该单元正在执行 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
}

最佳答案

分隔符被一次又一次地添加。当您试图隐藏分隔符时,它会隐藏最近添加的分隔符 View 。在 SessionTableViewCellawakeFromNib() 中创建分隔符,并添加属性 customSeparator 作为 SessionTableViewCell 的实例变量。它应该工作正常。

关于ios - 自定义 UITableView 分隔符在 View 加载时正确显示,但在单元格滚动出 View 并返回时默认为不需要的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44698458/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com