Swiftでは、UITableViewHeaderFooterViewに含まれている場合にUILabelの外観属性をカスタマイズするために次の操作を行います。
UILabel.appearance(whenContainedInInstancesOf: [UITableViewHeaderFooterView.self]).font = UIFont.boldSystemFont(ofSize: 18)
UILabel.appearance(whenContainedInInstancesOf: [UITableViewHeaderFooterView.self]).textColor = .white
これは、UITableViewHeaderFooterViewを次の場所で使用するときにtextLabel属性に適用されます。
public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
var headerView = tableView.dequeueReusableHeaderFooterView(withIdentifier: headerViewId)
if headerView == nil {
headerView = UITableViewHeaderFooterView(reuseIdentifier: headerViewId)
}
headerView?.textLabel?.text = "My Header".uppercased()
return headerView
}
これは、UITableViewStyle.groupedを使用する場合に非常に役立ちます。これは、viewForHeaderInSectionでUITableViewHeaderFooterView.textLabelをカスタマイズした場合でも、これらのセクションヘッダービューがデフォルトのスタイルで上書きされるように見えるためです。