Да, у каждого UIView
есть базовый CALayer
, который добавляется к слою его суперпредставления, когда представление добавляется к суперпредставлению.
Я не знаю идеального способа найти только свои собственные слои. Поскольку sublayers
является NSArray
(в отличие от NSSet
), это означает, что это упорядоченный список, что означает, что вы можете быть уверены, что порядок добавления представлений в суперпредставление соответствует порядку их появления. в указанном массиве.
Таким образом, если вы сначала добавите свои UIViews, а затем добавите свои собственные нарисованные CALayers, вы, вероятно, сможете получить свои собственные, получив доступ к объектам, начиная с индекса 2 (пропуская 0 и 1) в sublayers
.
Конечно, если вы затем добавляете или удаляете представления к суперпредставлению, вам нужно изменить это значение, поэтому, предполагая, что это действительно работает, вы захотите каким-то образом динамически сгенерировать его.
Вы можете определить индекс для слоя при его добавлении, используя indexOfObject:
в свойстве sublayers
. Более безопасный путь может заключаться в том, чтобы просто сохранить этот индекс где-то в списке и получить доступ к подуровням только с индексами из этого списка.