首页 > 解决方案 > moreNavigationController 的错误消息

问题描述

我已决定在 moreNavigationController 中自定义 tableView,我对其进行了测试,效果很好,没有问题,但为什么会出现错误:

2020-05-31 17:16:23.395903-0600 代码注释[1472:329155] [TableView] 仅警告一次:UITableView 被告知在不位于视图层次结构中的情况下布局其可见单元格和其他内容(表格视图或其中之一它的超级视图尚未添加到窗口中)。这可能会通过强制表视图中的视图在没有准确信息的情况下加载和执行布局(例如表视图边界、特征集合、布局边距、安全区域插入等)而导致错误,并且还会由于额外的布局传递而导致不必要的性能开销. 在 UITableViewAlertForLayoutOutsideViewHierarchy 处创建一个符号断点,以便在调试器中捕获它并查看导致这种情况发生的原因,因此如果可能的话,您可以完全避免此操作,或者将其推迟到表格视图添加到窗口中。表视图:<_UIMoreListTableView: 0x13a866e00; 帧 = (0 44; 414 852); clipsToBounds = YES; 自动调整大小 = W+H;手势识别器 = ; 层 = ; 内容偏移:{0, 0}; 内容大小:{414, 176};调整内容插入:{0, 0, 0, 0}; 数据来源:>

我不知道我该如何解决它,我该如何解决它?这是我的代码:

if let moretableview = moreNavigationController.topViewController?.view as? UITableView {
   moretableview.backgroundColor = UIColor(named: "mainbackground")
   for cell in moretableview.visibleCells {
      cell.backgroundColor = UIColor.clear
   }
}

标签: iosswiftuitableviewuinavigationcontrollertablecell

解决方案


时机就是一切。通过说

moreNavigationController.topViewController?.view

在你说它的时候,你正在强迫表格视图控制器过早地获得它的视图。然后,您正在修改视图,它是一个表格视图,当它还没有进入界面时。这会导致运行时抱怨。


推荐阅读