这是一个奇怪的问题——我终于买了一台Apple Silicon MacBook Pro,我正试图解决在Apple Silicon上运行iOS/iPadOS应用程序时的一些显示问题。出于某种原因,tableview,特别是willDisplayHeaderView视图返回为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设计(";导致页眉/页脚视图返回为"无"?在真实的iPad和iOS编译/模拟器上运行良好。
看起来像"text标签";不推荐使用,这是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"
}