루이 - 입력 해 주셔서 감사합니다. 여기에 내가 한 일과 내가 이해하지 못하는 현재의 이슈가있다.iPhone 레이어 관리 - 모범 사례
메뉴 (2)는 터치에 반응하는 UIImageViews입니다. 각각은 자신의 클래스입니다. 당신이 그들에게 전화했을 때 '스프라이트'는 또한 터치에 반응합니다.
.m에서 레이어에 메뉴와 스프라이트를 추가하면이 코드를 통해 두 개의 컨테이너 레이어가 만들어졌습니다 : menuContainer = [CALayer 레이어].
spriteContainer 위의 menuContainer를 사용하여 주문했습니다. 이제 스프라이트가 메뉴 아래로 이동합니다. 그러나이 과정에서 스프라이트가 touch에 반응을 멈췄다. (menuContainer 레이어 아래에 있기 때문에 이것을 이해할 수있다.) 메뉴가 터치에 반응을 멈췄다. 상황을 계속 혼란스럽게 만들면 슬라이더를 팝업하여 멀티 터치 제스처에 응답하는 menuContainer에 추가 된 레이어가 멀티 터치를 읽고 슬라이더를 팝업하지만 슬라이더를 슬라이드 할 수 없습니다. 이것은 완전히 혼란 스럽습니다.
감사합니다.
내 앱에서 배경 레이어를 만든 다음 항상 맨 위에 있어야하는 메뉴 레이어를 만듭니다. 그런 다음, 많은 이동 레이어를 추가하고 많은 이동 레이어를 매우 빠르게 제거합니다.
내 문제는 내 메뉴 레이어 (4 개가 있음)를 항상 다른 레이어 앞에 두는 것입니다. 나는 레이어 hiearchy를 만들고 insertsublayer : atindex : 메서드를 사용하여 내 메뉴를 1000의 개념 인덱스로 만들고 200과 같이 더 낮은 인덱스에 움직이는 레이어를 삽입하는 방법을 생각했습니다. 한 레이어를 200으로 삽입하면 다음 200, 200에 할당 된 첫 번째 레이어가 (201로) 이동되거나 멀리 날아가 버릴 수 있습니까?
insertsublayer : below :를 사용하여 레이어를 삽입하려했지만 원하는 결과를 얻지 못했습니다.
도움 주셔서 감사합니다.
이것은 좋은 질문입니다. 또한 왜 애플이 Z 좌표 (Z-coordinate) 속성의 형태로 Z 순서 메커니즘을 포함하지 않았는지 궁금합니다. – Amagrammer
CoreAnimation-Layers에 대해 이야기하고 있다고 가정하면 실제로 zPosition 속성이 있으며 추가적으로 자유롭게 조정 가능한 CATransform3D가 있음을 알게 될 것입니다. 그러나 두 속성은 형제에 대해서만 고려됩니다. 따라서 본격적인 3D 객체/애니메이션이 필요한 경우 CoreAnimation을 사용할 수 없습니다. 어떤 레이어가 다른 레이어 위에 또는 아래에 그려지는지 계산하는 것은 삽입 순서입니다. – Till
사실, CATransformLayer 내에 많은 수의 레이어를 배치하면 꽤 정교한 3D 효과를 복제 할 수 있습니다. 유일하게 실제적인 한계 인 3-D-wise는 CALayers가 직각이어야한다는 것입니다. –