2009-05-25 2 views
0

하위 뷰에 대한 참조를 얻으려고 IBoutlet을 사용하고 있습니다. 인터페이스 작성기의 기본보기에 추가했으나 이로 인해 액세스 권한이 부여되지 않습니다. drawRect : 나는 그릴 문맥을 얻을 수 없을 것이다. 어쨌든 그래픽 컨텍스트를 얻을 수 있으므로 하위 뷰를 그릴 수 있습니까? 나는 이것에 대해 어떻게 갈 것인가?iPhone이 하위보기에 대한 CGContextRef 컨텍스트 참조를 가져와야합니다.

+1

보기에 컨텍스트가 없습니다. 문맥은'-drawRect :'가 호출되었을 때 문맥이 만들어 지지만'-drawRect :'의 범위 밖에서는 문맥이 존재하지 않는다. –

답변

3

이렇게 그릴 수는 없습니다. drawRect 호출에 응답해야하며, 일부 프레임 워크에서는 허용하지 않습니다.

올바른 방법은 Xcode에서 UIView 하위 클래스를 만드는 것입니다. Interface Builder로 전환하여 하위 뷰를 선택하고 "Class Identity"("Tools> Identity Inspector"아래)를 새 하위 클래스의 이름으로 변경하십시오.

하위 클래스에서 drawRect을 구현할 수 있습니다.

0

하위보기조차도 다른보기로 그리면 안됩니다. 하위 뷰는 자체적으로 그려야하며 자체 그래픽 컨텍스트에 액세스 할 수 있습니다. 다른 뷰의 컨텍스트에 액세스 할 수 없습니다. 그것들은 프레임 워크에 의해 처리되고 적절한 뷰를 위해 -drawRect:을 호출하기 전에 설정됩니다.

1

기술적으로 한 객체가 view.layer.delegate 라우트를 통해 다른 객체의 드로잉 대리자가되는 방법이 있습니다. (의 CALayer *) inContext 레이어 : (CGContextRef) CTX이 당신에게이 필요하게해야 도면 지침을 재사용 할 수있는 기능을 제공

을 하나는 대리인이

  • (무효) drawLayer을 구현하기 위해 구성 할 수 있습니다. 그러나 다른 프로그래머를 읽고 이해하는 것은 지루할 수 있습니다. 대부분 코드 중복을 제거하지 않는 한 대부분을 피할 것입니다.

관련 문제