Как я могу использовать оба эти параметра в одном и том же UIView правильно?CALayer drawInContext vs addSublayer
Я один заказ на подклассы CALayer, в котором я рисую картину в пределах drawInContext
У меня есть другой, в котором я установить оверлей PNG изображения в качестве содержимого.
У меня есть третий, который является лишь фоном.
Как наложить все 3 из этих предметов?
[self.layer addSublayer:bottomLayer]; // this line is the problem
[squaresLayer drawInContext:viewContext];
[self.layer addSublayer:imgLayer];
Другие 2 сами рисуют правильно, если я делаю их в указанном порядке. Независимо от того, где я пытаюсь установить нижний слой, он всегда предотвращает рисование squaresLayer. Причина, по которой мне нужны 3 слоя, я намерен анимировать цвета в фоновом режиме и пользовательских слоях. Верхний слой - это просто графическое наложение.
Несколько вопросов: Вы уверены, что слой не нарисован? Или это делается, но не дает вам результаты, которые вы ищете? Как слои перекрываются? Нужно ли, чтобы эти слои были в одном представлении, или вы могли бы разбить один из них на другое представление? – Amagrammer
Привет, ну, они ДОЛЖНЫ быть в том же UIView, я полагаю, что я мог бы использовать subviews, похоже, немного использовать отдельные представления только для составных слоев. Однако я придумал решение, сделав 2 пользовательских слоя. Все, что добавлено в self.layer через «addSublayer», похоже, опирается на что-либо, нарисованное с помощью «drawInContext», которое прямо обращается к контексту .layer. Итак, выяснив это, я просто отобрал 2 слоя в этом контексте и добавил imgLayer сверху. Прекрасно работает, поскольку анимация завершается с использованием NSTimer, обновляющего представление, в котором выполняется drawInContext. – Michael