두 UI를 동일한 UIView에서 올바르게 사용할 수 있습니까?CALayer drawInContext 대 addSublayer
I 하나 맞춤 난 내용으로 오버레이 PNG 이미지를 설정하는 다른을 drawInContext 제가
내의 패턴을 그릴 수있는 서브 클래스의 CALayer을했다.
나는 세 번째 배경을 가지고 있습니다.
어떻게이 3 가지 항목을 모두 오버레이합니까?
[self.layer addSublayer:bottomLayer]; // this line is the problem
[squaresLayer drawInContext:viewContext];
[self.layer addSublayer:imgLayer];
내가 그 순서대로하면 다른 2 명이 올바르게 그려집니다. bottomLayer를 어디에 놓고 상관없이 항상 squaresLayer가 그릴 수 없습니다. 3 레이어가 필요한 이유는 배경 및 사용자 지정 레이어의 색상을 애니메이션으로 만들려고하기 때문입니다. 상단 레이어는 단지 그래픽 오버레이입니다.
몇 가지 질문 : 레이어가 그려지지 않았습니까? 아니면 그려져 있지만 당신에게 당신이 찾고있는 결과를주지 않을 수 있습니까? 레이어는 어떻게 겹 칩니 까? 이 레이어가 모두 동일한보기에 있어야하거나 다른보기로 그 중 하나를 분할 할 수 있습니까? – Amagrammer
안녕하세요, 글쎄, 그들은 동일한 UIView에있을 수 있어야합니다, 내가 subviews를 사용할 수있을 것 같아요, 레이어를 합성하기 위해 별도의 뷰를 사용하는 것 같습니다. 그러나 나는 2 개의 커스텀 레이어를 만들어서 해결책을 찾았다. "addSublayer"를 통해 self.layer에 추가 된 내용은 "drawInContext"를 통해 그려지는 모든 내용 위에 그려 지는데 이는보기의 .layer. 좋아, 그걸 알아 내서 그 컨텍스트에 2 개의 레이어를 렌더링하고 맨 위에 imgLayer를 추가했습니다. 잘 작동합니다. NSTimer를 사용하여 애니메이션을 감았을 때 drawInContext를 실행하는 뷰가 새로 고쳐집니다. – Michael