尝试调试时 willDisplayHeaderView 属性始终为 NIL iOS/iPadOS Apple Silicon Mac App
willDisplayHeaderView properties always NIL when trying to debug iOS/iPadOS Apple Silicon Mac App
这是一个奇怪的问题 -- 我终于得到了 Apple Silicon MacBook Pro,我正试图解决 运行 我的 iOS/iPadOS 应用程序在苹果硅。出于某种原因,tableview,特别是 willDisplayHeaderView view returns as Nil.
此示例代码因要求而崩溃:
override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
let headerView = view as! UITableViewHeaderFooterView
headerView.textLabel!.textColor = UIColor.white
let font = UIFont(name: "Avenir-Medium", size: 16.0)
headerView.textLabel!.font = font
headerView.backgroundView!.backgroundColor = UIColor.init(red: 28, green: 28, blue: 30, transparancy: 100)
headerView.tintColor = UIColor.init(red: 28, green: 28, blue: 30, transparancy: 100)
headerView.textLabel!.textAlignment = .center
}
这个示例代码,没有崩溃,因为它们是可选的但也没有效果:
override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
let headerView = view as! UITableViewHeaderFooterView
headerView.textLabel?.textColor = UIColor.white
let font = UIFont(name: "Avenir-Medium", size: 16.0)
headerView.textLabel?.font = font
headerView.backgroundView?.backgroundColor = UIColor.init(red: 28, green: 28, blue: 30, transparancy: 100)
headerView.tintColor = UIColor.init(red: 28, green: 28, blue: 30, transparancy: 100)
headerView.textLabel?.textAlignment = .center
}
知道为什么 运行 通过 XCODE“我的 Mac(专为 iPad 设计)”导致 header/footer 视图返回为 Nil ?在真实 iPad 和 iOS compile/simulator.
上工作正常
看起来“textLabel”已被弃用,这就是您需要为 iOS 14+:
做的
let headerView = view as! UITableViewHeaderFooterView
if #available(iOS 14.0, *) {
var config = headerView.defaultContentConfiguration()
config.text = "Hello"
headerView.contentConfiguration = config
} else {
// Fallback on earlier versions
headerView.textLabel?.text = "Hello"
}
这是一个奇怪的问题 -- 我终于得到了 Apple Silicon MacBook Pro,我正试图解决 运行 我的 iOS/iPadOS 应用程序在苹果硅。出于某种原因,tableview,特别是 willDisplayHeaderView view returns as Nil.
此示例代码因要求而崩溃:
override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
let headerView = view as! UITableViewHeaderFooterView
headerView.textLabel!.textColor = UIColor.white
let font = UIFont(name: "Avenir-Medium", size: 16.0)
headerView.textLabel!.font = font
headerView.backgroundView!.backgroundColor = UIColor.init(red: 28, green: 28, blue: 30, transparancy: 100)
headerView.tintColor = UIColor.init(red: 28, green: 28, blue: 30, transparancy: 100)
headerView.textLabel!.textAlignment = .center
}
这个示例代码,没有崩溃,因为它们是可选的但也没有效果:
override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
let headerView = view as! UITableViewHeaderFooterView
headerView.textLabel?.textColor = UIColor.white
let font = UIFont(name: "Avenir-Medium", size: 16.0)
headerView.textLabel?.font = font
headerView.backgroundView?.backgroundColor = UIColor.init(red: 28, green: 28, blue: 30, transparancy: 100)
headerView.tintColor = UIColor.init(red: 28, green: 28, blue: 30, transparancy: 100)
headerView.textLabel?.textAlignment = .center
}
知道为什么 运行 通过 XCODE“我的 Mac(专为 iPad 设计)”导致 header/footer 视图返回为 Nil ?在真实 iPad 和 iOS compile/simulator.
上工作正常看起来“textLabel”已被弃用,这就是您需要为 iOS 14+:
做的 let headerView = view as! UITableViewHeaderFooterView
if #available(iOS 14.0, *) {
var config = headerView.defaultContentConfiguration()
config.text = "Hello"
headerView.contentConfiguration = config
} else {
// Fallback on earlier versions
headerView.textLabel?.text = "Hello"
}