ios - 为 UITableView 部分标题返回 CGFloat.leastNormalMagnitude 会导致崩溃

标签 ios swift uitableview ios9 ios10

我为 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:) 尝试了几个值,并发现:

  • leastNormalMagnitudeleastNonzeroMagnitude 将被视为负数(因此崩溃)。
  • 零将使 TableView 返回默认高度作为页眉/页脚。
  • 0 和 1 之间的任何值都将被视为减号。
  • 将使 TableView 返回默认高度。
  • 任何超过 1 的值(例如 1.1)都会将页眉/页脚设置为实际高度。

我最终使用 1.1 解决了我的问题。

希望这对外面的人有帮助!

关于ios - 为 UITableView 部分标题返回 CGFloat.leastNormalMagnitude 会导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42246153/

相关文章:

ios - 我们可以使用Objective-C类别来扩展C++类吗?

针对 IIS7 和 Windows 2008 的 iOS "didReceiveAuthenticationChallenge"

ios - 添加 UIBarButtonItem 作为 UITabBarController 的子项

iOS 12 深度数据捕获错误代码 11800

ios - Swift - 重试直到网络可达

iphone - SearchDisplay Controller 没有显示我的搜索结果

iphone - 单击 iPhone 应用程序中的表格 View 单元格打开相机

ios - OnTouchUp 和 OnTouchDown 上的 Swift UIButton 背景更改?

ios - 如何动态调整自定义单元格高度

ios - 从过滤器列表和原始列表中删除项目