2010-03-15 4 views
9

크기 계산을 수행하는 drawRect에 사용자 지정 그리기 코드가 있습니다.'drawRect'는 언제 호출됩니까?

이 코드가로드되었는지 확인 할 수있는 최초의 경우, 예를 들어, 그에 따라 컨테이너 크기를 수정하고 싶습니까? 뷰가 표시되기 직전에

답변

1

또는 전화

[aView setNeedsDisplay]; 
+0

그러나이있다? – Egil

+0

아니, 당신은 뭔가를 직접 drawRect 메서드에 넣어야 할 것이다. –

3

-[NSView viewWillDraw]는 마지막 순간 레이아웃을위한 합리적인 장소입니다.

+0

아이폰에 존재합니까? – Egil

+0

나는 그가 viewWillAppearear를 의미한다고 생각합니다. 그리고 그것은 뷰가 나타날 때마다 발생합니다. viewWillDisappear는 해당 exit 함수입니다. –

+0

하지만 'willAppear'는 'draw'전에 호출되지 않습니까? – Egil

2

크기 계산을 수행하는 drawRect에 사용자 지정 그리기 코드가 있습니다.

이 코드가로드되었는지 확인 할 수있는 최초의 경우, 예를 들어, 그에 따라 컨테이너 크기를 수정하고 싶습니까? 동급가 완전히로드 될 때까지

객체는 존재할 수 없습니다. 인스턴스가있는 경우 인스턴스가 아닌 인스턴스가 없기 때문에 인스턴스가있는 클래스가 완전히로드됩니다. 이 호출 때의

로 : 그것은 당신이 그릴 필요가있을 때라고. 이것은 일반적으로 이벤트 루프의 일부로 발생합니다. 어떤 것이보기를 표시해야한다고 표시 한 경우입니다. NSView에 직접 표시 할 수는 있지만 가능한 한 UIView에서는 불가능합니다.

이렇게하기 전에 뭔가해야 할 일이 생기면 바로 만들거나,보기를 필요로하는 것으로 설정하려면 바로하기 전에 수행하십시오.

0

난 그냥 내 첫있는 CustomView 응용 프로그램을 만들었습니다. 이것은 내 질문 중 하나였습니다. 내 drawRect 메서드는 내 창을 만들 때 (또는 다시 생성) 한 번 호출되었습니다. 창 크기를 조정할 때 수백만 시간을 필요로합니다. 이 단계에서 어떤 콜백

관련 문제