2012-06-20 6 views

답변

1

당신이 궁금해하는 점은 뷰의 z- 순서를 제어하는 ​​방법입니다.

역사적인 이유로 인해 AppKit (iOS의 UIKit과 다름)에서 제대로 지원되지 않습니다. 다소 최근까지는 개의 중복되는 형제보기가 있기 때문입니다.

(최근 OS X 릴리스에서) 일반적으로 Z- 순서 지정을 기본적으로 지원하는 Core Animation (특히 CALayer)을 사용하는 것이 일반적이지만, 이는 사용자가 필요로하는 것에 대해 과장 될 수 있습니다. 당신을위한 학습 곡선을 갖기 위해).

실제로 무엇을하려고합니까? 이러한 이미지 (이미지 뷰)가 정확히 서로 위에 있습니까? 그렇다면 가장 쉬운 (더 나은 성능을내는) 방법은 하나의 NSImageView을 가지고 -setImage:...에 표시된 이미지를 변경하는 것입니다.

+0

이미지를 X만큼 드래그하여 화면에 표시하므로 한 번에 모두 표시됩니다. 내가 만들고있는 응용 프로그램은 장면을 만드는 것이므로 사용자는 이미지를 삭제하고 다시 추가하지 않고도 다른 이미지의 앞이나 뒤의 일부 이미지를 원할 수 있습니다. 말이 돼? –

+0

간단한 예를 들어, NSImageView가 다른 NSImageView와 직접 겹치도록 만들었습니다. 뒤에 NSImageView를 배치하는 것이 쉬운 방법이 없습니다. 만약 그렇지 않다면 CALayer를 살펴볼 것입니다. –

+0

@ ObjectiveC-InLearning 오른쪽 -z 순서로보기를 삽입하려면'-addSubview : positioned : relativeTo :'를 사용하여 원하는 것을 성취 할 수 있다고 생각하지만, 이것은 성 가시고 잠재적으로 취약합니다 (@Caleb가 방금 지적한대로). 많은 이미지를 얻으려면 결국 레이어 기반보기와 관련 'CALayer'작업을 사용해야 할 것입니다. –

2

NSView 참조 페이지에서 설명했듯이보기의 하위보기의 z- 순서는보기의 subviews 배열에서 해당 하위보기로 지정됩니다. -addSubview:positioned:relativeTo:을 사용하여 다른 하위 뷰를 상대적으로 삽입 할 수 있으며 subviews 속성을 가져 와서 원하는대로 하위 뷰를 재정렬 한 다음 -setSubviews:을 호출하여 새 순서를 설정하면 기존 하위 뷰를 재정렬 할 수 있습니다.

즉, 문서 말 :

파단의 순서는 앞뒤, 것으로 간주 될 수도 있지만,이 무효화 및 드로잉 동작을 의미하는 것은 아니다.

관련 문제