2010-07-10 4 views
1

나는 슈퍼 뷰와 서브 뷰를 가지고 있습니다. 둘 다 관습입니다. superview의 drawRect 동안 하위 뷰를 추가하고 그려진 뷰에서 이미지를 만들고 하위 뷰를 제거하려고합니다.코코아로 뷰를 강제로 그려야합니다.

내 코드는 실행하고 이미 수퍼 뷰에 그려진 서브 뷰로 시작할 때 잘 동작합니다. (drawRect 동안) 하위 뷰를 추가하는 것이 바로 그릴 것 같지 않은데, 다음 drawRect를 기다려야합니다.

하위 뷰를 추가하고 즉시 그릴 수 있도록하려면 어떻게해야합니까?

+0

사용중인 코드를 표시하면 도움이됩니다. – kiamlaluno

+0

http://www.mediafire.com/?zmzn5dkzfwz – joels

답변

0

먼저 디스플레이를 강요하면 거의 확실하게 뭔가 잘못하고있는 것입니다.

둘째, drawRect 중에 뷰의 현재 상태를 그리는 데 주로 사용되는 하위 뷰를 추가하면 안됩니다.

셋째, 실제로 무엇을하려고합니까? 광범위하고 멍청한 설명을 부탁합니다. 목표에 대한 기본 접근 방식에 문제가있는 것 같아서, 당신을 위해 일하지 않는 것에 대한 좁은 초점을 넘어서 설명한다면, 우리는 더 나은 (그리고 아마도 더 쉬운) 해결책.

마지막으로, 질문에 대한 직접적인 대답으로, 즉시 표시하고 싶다면보기에 -display를 지정하십시오. 그러나 예상대로 행동하지 않을 것이라고 생각합니다.

+0

"먼저 디스플레이를 강요하면 거의 확실하게 뭔가 잘못하고있는 것입니다." 당신 말이 맞습니다. viewWillDisplay에 모든 것을 설정하고 drawRect에 모든 그리기 코드가 있어야합니다. 나는 그것을 시도 할 것이다. – joels

+0

부모 뷰가 자식 뷰를 만들고, 자식 뷰에서 메서드를 수행 한 다음 자식 뷰를 제거하려고 했었습니다. 자식 뷰를 추가하고 일부 소품을 설정하여 drawRect 메서드가 끝날 때 메서드 자체를 수행 한 다음 자체를 제거합니다. Thx Joshua! – joels

+0

게시 한 코드에서 부모보기의 이미지를 만든 다음 해당 이미지 위에 일부 그림을 오버레이하는 것처럼 보입니다. 그렇다면 왜 -dataWithPDFInsideRect :를 사용하여 이미지를 만들고 그 이미지에 포커스를두고 그 위에 직접 그릴 수 있습니까? 주변을 둘러 보는 등의 작업을 왜 귀찮게합니까? –

0

[보기 표시]를 사용하여 즉시 그립니다.

+1

그게 내가 drawRect에서 한 경우 그냥 루프가 발생합니다. 비록 – joels

관련 문제