2011-10-08 12 views
36

서브 클래스를 UIView으로하고 drawRect 메서드를 추가했습니다. 그런 다음이 사용자 정의 클래스를 사용하여 뷰를 정의하고 서브 뷰를 추가합니다.서브 뷰 위에 drawRect

문제는 drawRect이 하위보기 아래에 내용을 표시하는 것입니다 (따라서 보이지 않음).

나는 그려 내 물건의 내 사용자 정의 UIView subviews 위의 나타납니다.

이것이 가능합니까?

+0

달성하고자하는 것을 (이미지 일 가능성이 있음) 보여주십시오. 하위 뷰의 내용을 먼저 그려야하고 맨 위에 "배경"을 그려야 할 것 같지만 확신 할 수 없습니다. – jrturton

+0

큰 질문, 간결하게 유지해 주셔서 감사합니다. –

답변

28

하위보기는 항상 수퍼 뷰의 "최상위"에 그려집니다.

특정 요구 사항에 따라 배경/컨테이너보기로 일반 UIView가 있어야하며 기존 하위보기가 있고 다른보기가 맨 위에 추가되어 사용자 정의보기가 추가되어야 할 수도 있습니다. 최고 Z 순서.

예를 들어 사용자 정의보기가 다른 모든 항목 위에 있어야하는 격자 오버레이 인 경우이 기능이 작동합니다. 사용자 정의보기는 투명한 배경색으로 불투명하지 않아야합니다.

9

아니요, 하위보기는 항상 컨테이너 위에 나타납니다. 물론 하위 뷰를 (부분적으로) 투명하게 만드는 것을 막을 수는 없습니다.

위의 그림을 그리려면 다른 투명 투명한 하위 뷰를 컨테이너의 최상위 하위 뷰로 배치하고 그 중 하나를 그립니다. 사용자 상호 작용을 사용 중지해도 터치 처리가 방해받지 않습니다.

+0

또한이 새로운 리팩토링 (새로운 UIView 또는 뷰에 대한 리팩토링)은 대부분의 경우 가독성을 높여줍니다. +1 –

관련 문제