2012-04-22 3 views
0

점, 선, 원 및 베 지어 패스를 그리는 표준 방법은 drawRect 내부에 그려주는 것입니다. 우리는 또한 우리가iPhone 및 iPad에서 drawRect를 사용하지 않고도 무언가를 그릴 수 있습니까?

[self setClearsContextBeforeDrawing: NO]; 
에 의존 할 수없는 것 같다

... 직접 drawRect 부르지 만, 단지 아이폰 OS가 부르 자 우리는 때 할 수 drawRect를 호출하려고 아이폰 OS에게 [self setNeedsDisplay]을 사용할 수 없습니다

drawRect을 호출하기 전에보기의 배경을 지우지 마십시오. 이 질문에 대한 자세한 내용은 다음과 같습니다. UIView: how to do non-destructive drawing?

drawRect에 코드를 삽입하지 않고 화면에 직접 그려 보는 것은 어떻습니까? 예를 들어 ViewController.m에는 화면에 점, 선, 원을 직접 그려주는 코드가 있습니다. 그게 가능하니?

+0

물론 UIKit 그리기를 전혀 사용하지 않고 대신 OpenGL ES 또는 Cocos2D와 같은 상위 수준의 프레임 워크를 사용하여 그리면 유용합니다. – Felix

+0

그것은 무엇입니까? iOS 프레임 워크를 사용하는 것은 어떨까요? 아마도 Win32에서 다시 그리기 기능이 없을 때 (어떤 사각형 영역이 "무효화"되었을 때) 무엇이든 그릴 수 있습니다. –

+0

그리고 Cocos2D 또는 OpenGL ES를 사용하여 의존해야합니까? 애플의 아이폰 OS에서 프레임 워크는 그것을하지 않을 것인가? –

답변

1

OpenGL을 사용하지 않고도 가장 가까운 방법은 CGBitmapContextCreateImage을 사용하여 컨텍스트를 이미지로 변환하는 것입니다. 거기에서 이미지를 메모리에 유지 (또는 필요한 경우 디스크에 기록) 한 다음 뷰를 다시 그릴 때이 원본 이미지를 컨텍스트에 먼저 그려 넣은 다음 새 컨텐트로 오버레이 할 수 있습니다.

관련 문제