Я пытаюсь создать чисто графический интерфейс на основе CALayer (из соображений производительности и использования памяти) на основе нескольких стандартных шаблонов CALayer.
Я подумал, что можно было создать несколько шаблонов представленияв Интерфейсном Разработчике загрузите шаблон при запросе, затем возьмите его слой, добавьте его в качестве подслоя и отбросьте представление.Идея состоит в том, что проектировать графику в IB проще, чем создавать ее программно.
Вот что я обнаружил после множества проб и ошибок: если родительское представление слоя освобождается из памяти, тогда слойне в состоянии сделать себя.Только если я сохраню вид где-то (не привязанный ни к чему), слой сможет правильно отрисовать себя, несмотря на то, что находится в другой иерархии.
Первое, что приходит на ум, - это делегат CALayer.Однако просто переназначение делегата не решает проблему.Странно, но автономные слои, созданные без делегатов, всегда работают нормально, но не те, которые загружаются из файла XIB.
Еще одна вещь, которую я заметил, когда вы печатаете слой в отладчике, вы видите _uikit_viewPointer
, который указываетк прежнему взгляду родителей, так что это может быть тот парень, который все разрушает.
Кто-нибудь знает, что происходит, или как эта проблема может быть решена?