인터페이스 빌더에서 생성 된 앞 / 뒤 요소에 프로그래밍 방식으로 전송


84

인터페이스 빌더에서 레이아웃 옵션은 백업하거나 앞으로 같은 모든 요소를 보낼 보낼 수있다 UIButton, UIImage, UILabel등 ...

이제 런타임에 프로그래밍 방식으로 동일한 작업을 수행하고 싶습니다.

그렇게하는 쉬운 방법이 있습니까?

다른 뷰를 만들고 싶지 않고 z 축만 업데이트하면됩니다.

답변:


192

UIView보기 계층 구조를 수정할 수 있는 여러 가지 방법이 있습니다.

뷰가 이미 수퍼 뷰에 삽입되었으므로 bringSubviewToFront:원하는 순서대로 각 뷰에 대해 한 번 쉽게 호출 할 수 있습니다 .


UIButton을 앞 / 뒤로 직접 보낼 수 없다는 말입니까? 보기를 만들고 해당보기에 추가해야합니다. 그런 다음 위의 방법을 사용 하시겠습니까? 그렇다면 컨트롤러 클래스가 그러한 뷰를 생성하는 장소입니까?
Yohann T.

11
UIButton은 UIView의 하위 클래스입니다. 다음을 호출하십시오. [[myButton superview] bringSubviewToFront : myButton];
Sebastian Celis

약간의 의심을 없애기 위해 이미 뷰 계층 구조에있는 하위 뷰를 삽입하면 OS가 해당 위치 만 이동합니다. 따라서 뷰가 존재하는 한 삽입해도 오버 헤드가 발생하지 않습니다.
olivaresF 2011

" bringSubviewToFront:원하는 순서대로 각 뷰에 대해 한 번씩 호출 "하는 것이 정말 트릭입니다. 잘 했어.
Ans

43

다음을 사용할 수 있습니다.

[self.view bringSubviewToFront:myButton];
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.