我为 iOS 8 制作了一个应用,其中一个页面使用分组的 UITableView
。其中有多个部分使用 CGFloat.leastNormalMagnitude
(或 Swift 2 及以下版本中的 CGFloat.min
)作为部分页眉和页脚高度以删除“默认”空间。一切顺利,直到该应用程序在 iOS 9 和 10 中运行时崩溃并出现以下错误:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'section header height must not be negative - provided height for section 0 is -0.00000'
不知何故,1
下的任何值(四舍五入的 0
除外)都被视为负数 - 使用 1
作为返回值将使页眉/页脚空间再次出现。
是否有解决此问题的解决方法?
提前致谢。
最佳答案
我已经为 tableView(_:heightForHeaderInSection:)
尝试了几个值,并发现:
leastNormalMagnitude
和leastNonzeroMagnitude
将被视为负数(因此崩溃)。- 零将使 TableView 返回默认高度作为页眉/页脚。
- 0 和 1 之间的任何值都将被视为减号。
- 将使 TableView 返回默认高度。
- 任何超过 1 的值(例如 1.1)都会将页眉/页脚设置为实际高度。
我最终使用 1.1
解决了我的问题。
希望这对外面的人有帮助!
关于ios - 为 UITableView 部分标题返回 CGFloat.leastNormalMagnitude 会导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42246153/