我正在使用表格视图来显示清单。某些视图按类型对列表项进行分组。对于这些,我在括号中显示类型名称并带有项目计数(例如"今天要做的事情 (58("(。
我想刷新该字符串以反映用户删除或完成项目时的更新计数。
这可以通过设置标头的 textLabel
属性并调用 setNeedsLayout()
轻松完成。问题是,它会改变文本的外观。
之前(所有大写默认部分标题字体,例如"今天要做的事情(58("(:屏幕截图 - 之前
之后(不再是全部大写,例如"今天要做的事情(58("(:屏幕截图 - 之后
这是我当前用于刷新标头的代码:
func refreshHeaderTitleForSection(_ section: Int) {
if let header = tableView.headerView(forSection: section) {
header.textLabel?.text = getHeaderTitleForSection(section)
header.setNeedsLayout()
} else {
return
}
}
我调用getHeaderTitleForSection()
以获取加载表视图时titleForHeaderInSection
的字符串,因此它应该是相同的。有没有办法告诉它保留默认格式而不定义自定义标题视图?
据推测,您的 getHeaderTitleForSection
方法返回非大写字符串。 UITableView
自动以全大写形式显示节标题,无论您从titleForHeaderInSection
返回什么。
最简单的解决方案是在更新标题视图时强制使用全部大写。
header.textLabel?.text = getHeaderTitleForSection(section).uppercased()