2011-03-28 7 views
0

뷰 컨트롤러 클래스에서 UIView drawRect 메서드를 호출하고 있습니다. UIView 클래스의 객체가 있고 [object setNeedsDisplay]를 사용하여 drawRect 메서드를 호출합니다. 내가 가지고있는 문제는이 함수를 호출 할 때,이 함수로의 분기가 일어나지 않는다는 것이다. 먼저 뷰 컨트롤러에서 함수 실행을 완료하고 UIView 클래스에서 함수를 실행합니다. 어느 누구도 UIView 클래스로 분기 한 다음 ViewController 클래스 실행을 완료하는 방법을 알려줄 수 있습니까?-drawRect를 실행하려면 어떻게해야합니까?

감사

답변

0

는 -setNeedsDisplay 바로보기의 사각형을 무효화합니다. 다음에 그래픽 시스템이 화면을 그릴 때 뷰를 다시 그리도록 요청합니다. 그것이 드로잉이 작동하는 방식입니다. 적절히 구성된 응용 프로그램에서는 드로잉이 언제 발생하는지 실제로 신경 쓰지 않아야합니다. 또는 다른 방법으로 말하자면 드로잉이 언제 발생하는지 신경 쓰면 앱에 약간의 작업이 필요할 것입니다.

왜 특정 시간에 드로잉이 필요한지 알려 주시면 해결 방법을 알려 드리겠습니다.

+0

뷰 계층 구조가 위에서 아래로 다시 그려지는 것을 추가하기 만하면됩니다. 하위보기는 부모보기 후에 다시 그려집니다. – TheBlack

+0

주문을 "앞 뒤로"로 기억하는 것이 더 쉽습니다. – Caleb

+0

내 응용 프로그램에서 반경을 변경할 수있는 원을 그립니다. 사용자가 반경을 변경하면 이전에 그려진 원을 삭제하고 새로운 반경으로 그립니다. 여기 내 코드는 graphs_Drawing_Obj.current_Action = clearDrawingPadAction; \t [graphs_Drawing_Obj setNeedsDisplay]; 반경 = 새로운 _Rad; – pa12

관련 문제