Слой является частью цикла в его слое дерева iOS 9 Swift 2
Когда я загружаю свой контроллер представления, я получаю эту ошибку:
*** Terminating app due to uncaught exception 'CALayerInvalid', reason: 'layer <CALayer: 0x7fda42c66e30> is a part of cycle in its layer tree'
Я не знаю почему. Я думаю, что, возможно, я добавил стороннюю структуру, которая сослалась на слои, но я удалил ее в процессе устранения неполадок. Любые идеи были бы замечательными.
ИЗМЕНИТЬ
Это происходит во время viewDidLoad
моего tableViewcontroller
. У меня есть tableView на моем втором vc. Я сузил его до сбоя при установке heightForRowAtIndexPath
на 4-й пользовательской ячейке. Ячейка находится на статическом tableView
.................:/Подходим ближе!
Здесь мой heightForRowAtIndexPath
:
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
print("idx = \(indexPath.row)")
return super.tableView(tableView, heightForRowAtIndexPath: indexPath)
}
Довольно общий. Любые мысли о том, где еще это может быть вызвано?
Ответы
Ответ 1
У меня тоже была та же ошибка, и я нашел это исправление
В нем упоминается, что нужно удалить розетку accessoryView, которую вы увидите в TableView.
Для этого:
- Нажмите на представление таблицы
- Перейдите в "Инспектор соединений", в правом окне, самый последний значок (выглядит как круг со стрелкой вправо)
- Ищите аксессуарПросмотрите и отсоедините розетку
На приведенном ниже снимке экрана показана розетка, которую необходимо отключить:
![enter image description here]()
Ответ 2
проверьте, добавили ли вы self.view в self.view, например:
self.view.addSubview(view)
или
contentView.addSubview(self.view)
Ответ 3
Это может помочь кому-то все еще в беде,
Для меня проблема была в этом
layer.addSublayer(layer)
Добавление слоя к себе 🤦♂️. После этой ошибки я планирую покончить с собой :(.
Ответ 4
Я решил один краш такого рода, удалив выход на File' s owner
в некоторых файлах xib
UI. Я отвечаю здесь, если кто-то встречает подобное.
Ответ 5
Один из моих друзей столкнулся с той же проблемой. Основная причина лежала в viewForHeaderInSection делегате UITableview.
Он добавил метку в главном окне контроллера в этом делегате. Он должен был создать UIView и вернуть его в этом делегате, но, к сожалению,
он возвращал себя. там. Таким образом, удаление этого кода решило проблему.
Ответ 6
Мне удалось исправить это, но не так, как я надеялся. Я закончил тем, что поцарапал tableViewCell, что вызывало проблему и перестраивало все ограничения компоновки с нуля. Не идеально, но это сработало. Я надеюсь, что кто-то может прийти в будущем и объяснить, почему эта ошибка произошла! Приветствия.
Ответ 7
У меня тоже была эта проблема, и я обнаружил, что случайно создал выход из backgroundView TableViewCell в представление TableView - DOH!