gpt4 book ai didi

swift - 在 TableView 中重用标题部分

转载 作者:行者123 更新时间:2023-11-28 06:10:19 25 4
gpt4 key购买 nike

我一直在整个 WWW 上搜索合适的解决方案,但大多数似乎已经过时或不够充分。

我很难在我的 UITableViewController 中简单地重用自定义 UITableViewHeaderFooterView。

这是我的方法:

  1. 创建 Nib 。
  2. 创建自定义 UITableViewHeaderFooterView , 命名为 HeaderView
  3. 添加标签并将其连接到HeaderView
  4. UITableViewController 中注册 Nib 的 viewDidLoad()
  5. 出列并返回 tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) 中的 Nib

自定义 HeaderView类:

class HeaderView: UITableViewHeaderFooterView {
@IBOutlet weak var customLabel: UILabel!
}

UITableViewController类:

override func viewDidLoad() {
super.viewDidLoad()

tableView.register(UINib(nibName: "HeaderView", bundle: nil), forHeaderFooterViewReuseIdentifier: "Header")

}

override func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: "Header") as! HeaderView
headerView.customLabel.text = "This is a header section"
return headerView
}

这似乎是许多人建议的方法,但我相信我无法将 Nib 的所有者自定义类正确设置为 HeaderView (UITableViewHeaderFooterView)。当单元格出列时,我遇到了致命的崩溃:

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSObject 0x60000020ebe0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key customLabel.'

我非常确定我已将 UILabel 正确连接到 nib IB 中的文件所有者。

Assigning class

我尝试更改 HeaderView类别为 UIView ,然后 dequeueReusableHeaderFooterView(withIdentifier: "Header") as! HeaderView强制 UITableViewHeaderFooterView 到 UIView 时会导致崩溃。

这是为什么,目前有什么解决办法?

最佳答案

我发现问题是我将 nib - 文件所有者设置为 HeaderView 并将我的 customLabel 连接到它。

解决方案是将 nib 的 View 类设置为 HeaderView 并将标签连接到它。奇怪的是,有必要将它放在 UIView 中。

as such

关于swift - 在 TableView 中重用标题部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46892696/

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