2011-03-31 4 views
0

초급자의 질문이 있습니다.Subview를 프로그래밍 방식으로 추가하기와 InterfaceBuilder에서 추가하기

하위 뷰의 수준과이를 결정하는 방법에 대해 궁금합니다. 과 같이, IB (sampleButton)에 하나 개의 버튼을 넣어 가지고 다음 프로그래밍 방식으로 하위 뷰를 만드는 고려해 단순히 동일합니다

[view insertSubview:aView atIndex:[view.subviews count]]; 

: 두 경우 모두

[view addSubview:aView]; 

이제, 내 인덱스 (이 z라고하면, 맞습니까?) 제가 틀리지 않으면 1이되어야합니다.

IB에서 내보기에 추가 된 단추가 색인 0에 있어야합니다 (z = 0 또는 1에서 시작합니까?). 그런 다음, 내가 view.subviews 개수를 할 경우, 인덱스 1에서 1 개체가 있으므로 숫자 1,이 줄 것이다. 그래서 내 새 하위 뷰 'aView'인덱스에서 배치됩니다 = 1 내 sampleButton 위에 한 계층입니다 .

지금까지 그렇게 좋았습니다. 그러나 만약 내가 이런 식으로 물건을 원하지 않는다면? 상위 레벨 (예 : 1)에서 sampleButton을 사용하고 최저 (예 : 0)에서 'aView'를 원한다면 어떻게해야합니까? 간단히 말해서 나는이 작업을 수행 할 수 있습니다

[view insertSubview:aView atIndex:0]; 

이 단순히 다른 레이어에 밀어 IB에서 만든 내 버튼을 돌볼 것인가 아니면 내가 sampleButton는 Z = 0되어서는 안된다는 IB 말할 것인가?

답변

1

이미 예상 한대로 동작합니다. 인덱스 0에 하위보기를 삽입하면 다른 모든 하위보기의 "아래"에 있습니다.

+3

대체 '[view bringSubviewToFront : aView]' 같은 것을 할 것입니다. – Seega

+1

실제로 OP에서 언급 한 OP가 이미 IB 내 하위 뷰로 추가되었다고 언급하면서 seega의 대안이 실제로 옳고 유일한 해결책이라고 말하고 싶습니다. – Till

+0

@ Seg : 고마워.이게 내가 실제로 찾고 있었던 것 같아. –

관련 문제