图层是其图层树iOS 9 Swift 2中循环的一部分

Bri*_*rie 10 calayer ios9 swift2

当我加载我的视图控制器时,我收到此错误:

*** Terminating app due to uncaught exception 'CALayerInvalid', reason: 'layer <CALayer: 0x7fda42c66e30> is a part of cycle in its layer tree'
Run Code Online (Sandbox Code Playgroud)

我不知道为什么.我想我可能已经添加了一个与图层混淆的第三方框架,但是我在故障排除中删除了它.任何见解都会很棒.

编辑

它发生在viewDidLoad我的tableViewcontroller.我的第二个vc上有一个tableView.我把它缩小到它在设置heightForRowAtIndexPath第4个自定义单元格时崩溃了.细胞处于静止状态tableView.................:/越来越近了!

这是我的heightForRowAtIndexPath:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

    print("idx = \(indexPath.row)")

    return super.tableView(tableView, heightForRowAtIndexPath: indexPath)
}
Run Code Online (Sandbox Code Playgroud)

非常通用.关于这可能造成的其他问题的任何想法?

Pab*_*uan 24

检查你是否在self.view中添加了self.view,例如:

self.view.addSubview(view)
Run Code Online (Sandbox Code Playgroud)

要么

contentView.addSubview(self.view)
Run Code Online (Sandbox Code Playgroud)


inf*_*oop 15

这可能会帮助那些仍然遇到麻烦的人,对我来说问题是这个

layer.addSublayer(layer)
Run Code Online (Sandbox Code Playgroud)

向自己添加一层♂️.在这个错误后我打算自杀:(.

  • 有趣的是你的昵称是“infiniteLoop”)谢谢。 (4认同)

小智 12

我也有同样的错误,发现了这个问题

它提到删除您将在TableView上看到的accessoryView Outlet.

去做这个:

  1. 单击表视图
  2. 转到"Connections Inspector",它是正确的窗口,最后一个图标(看起来像一个右箭头的圆圈)
  3. 查找accessoryView并断开插座

无法发布截图,因为我没有足够的声誉.博客文章向您展示了如何做到这一点.


Amr*_*dhu 5

我的一位朋友面临同样的问题。根本原因在于 UITableview 的 viewForHeaderInSection 委托。

他在这个委托的控制器的主视图中添加了一个标签。他应该创建一个 UIView 并在这个委托中返回它,但不幸的是他在那里返回了 self.view 。因此删除此代码解决了问题。