2011-02-08 5 views
1

clipToBounds = YES이면 원하는 모든 것을 그릴 수 있지만 테두리 안쪽에만 칠할 수 있습니다. 아니오로 설정하면 경계 외부의 페인트가 가능하지만 허용됩니까?iOS : 바운더리 바깥으로 페인트 할 수 있습니까?

내가 묻는 이유는 iOS가 화면의 올바른 부분이 다시 그려지는 환경 (예 : setNeedsDisplay)을 만드는 개념을 사용하기 때문입니다. 내 한계를 벗어나면 그걸로 끝날까요?

나는 그것을 시도하고 작동하는 것 같지만?

+0

답을 바탕으로 할 수있는 것처럼 보이지만 왜 그렇게하고 싶습니까? 보이지 않는 것을 그리는 것은 자원 낭비입니다. – Moshe

+1

당신은 내 첫 번째 문장을 읽지 않았습니다. – Tbee

답변

1

Evgen이 옳았으며 "iOS 용 프로그래밍 가이드보기"에 명확하게 설명되어 있습니다. 바운드 바깥에서 이벤트를 처리 할 수 ​​없습니다.

+1

기본적으로 뷰의 프레임은 슈퍼 뷰의 프레임으로 잘리지 않습니다. 따라서 ** 슈퍼 뷰의 프레임 외부에있는 모든 하위 뷰는 전체적으로 렌더링됩니다 **. 그래도 superview의 clipsToBounds 속성을 YES로 설정하면이 동작을 변경할 수 있습니다. 하위 뷰가 시각적으로 클리핑되는지 여부에 관계없이 ** 터치 이벤트는 항상 대상 뷰의 슈퍼 뷰 ** 경계 사각형을 존중합니다. 즉, 수퍼 뷰의 경계 사각형 외부에있는 뷰의 일부에서 발생하는 터치 이벤트는 해당 뷰로 전달되지 않습니다. – Tbee

+0

귀하의 질문에 오해가 있습니다. 죄송합니다. 나는 부끄러워 해요. – MHC

0

귀하의 앱이 귀하의 앱을 거부한다고 생각하지 않습니다. 결국 그것은 공개적이고 문서화 된 API를 사용하는 것입니다. 그러나 이상한 효과에 대비하여 올바른 그림 순서를 더 이상 보장 할 수 없습니다.

0

예, 작동하며이 속성을 사용하는 데 문제가 없습니다. 필요에 따라 개체가 다시 칠합니다.

+0

경계 밖의 그림이 허용되는지/문제를 일으키지 않는지를 나타내는 어떤 종류의 지원 정보를 가지고있는 것이 좋을 것입니다. – Tbee

관련 문제