ios - UITableViewCell 在 reloadSections 后不显示背景和插图
问题描述
在我的 UITableView 中,我实现了一个可扩展的部分行为:如果单击一个部分中索引为 0 的单元格,则该部分的其余部分通过执行来显示
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
if indexPath.row == 0 {
isSectionExpanded[indexPath.section] = !isSectionExpanded[indexPath.section]
tableView.reloadSections([indexPath.section], with: .none)
}
}
我天真地有一组布尔值,我在其中跟踪每个部分的“扩展”状态:
var isSectionExpanded = [Bool]()
因此,一个部分中的行数是这样计算的(“页眉”有一行,“页脚”有一行,此外行程中的每条腿都有一行:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if let trip = trips?[section] {
if isSectionExpanded[section] {
return 2 + (trip.legs?.count ?? 0)
} else {
return 1
}
}
return 0
}
很简单,一切都很好,例如在 iOS 12 上仍然可以。但是在最新版本的 iOS 上——不幸的是,我不知道什么时候开始的,可能是 iOS 14.1 或 2——扩展的单元格没有任何背景,也不再绘制插图。寻求帮助我看到一些帖子提到了类似的问题,但使用的是 SwiftUI。我仍然使用 xib 文件和 Swift。我已经尝试在内容视图上设置背景,它正确显示了背景,但插图仍然丢失......我什至尝试reloadData()
再次使用 : 加载内容,这显示了单元格的背景,但不显示插图。当然,动画丢失了..
当单击其中一些单元格时,会使用从左上角到右下角的奇怪动画绘制正确的背景颜色。
谁能告诉我是什么导致了这个问题以及如何解决它?非常感谢!
解决方案
iOS 12 使用白色 - 背景默认颜色。iOS 14 使用组表视图颜色 - 背景默认颜色。你可以在 Xcode 10.3 和 Xcode 11.x 中看到这些谢谢
推荐阅读
- excel - Excel - 如果第一列匹配,则从其他工作表复制行数据
- geolocation - 通过 lat/lng 解析国家 + 州
- linux - 有没有办法在 exec.Start() 之后和命令开始之前加载 seccomp 过滤器
- playframework - 如何使用 h2-browser 查看 play 2.7 H2 数据库的内容?
- django - 部署在 Kubernetes 上时是否需要在反向代理后面运行 Django
- jolokia - 默认情况下启用许多模块的 Metricbeat
- python - 如何处理 API 请求中的不同响应码?
- c# - 无法导入 Visual Studio 2019 Scoped Credential
- unix - UNIX 中的紧急功能
- javascript - 如何根据用户纬度和经度显示最近位置列表