2011-10-30 4 views
2

iOS 응용 프로그램에서 사용할 "캔버스와 같은"요소를 찾고 있습니다. "캔버스와 같은"의미는 직사각형, 선, 텍스트 또는 이미지와 같은 기본 도형을 그릴 수있는 표면을 원한다는 의미입니다. 나는 3D 나 다른 정말로 진보 된 것들을 필요로하지 않는다 - 직사각형과 다른 이미지들로 충분할 것이고, 필요하다면 텍스트는 이미지에 저장 될 수있다.캔버스와 같은 요소

그런 API를 사용할 수 없다고 상상할 수는 없지만 어떻게 호출합니까?

+0

참조 http://stackoverflow.com/questions/6724800/how-to-use-drawrect-to-draw-in-a-existing-view/6725315#6725315 –

답변

2

UIKit을 사용하면 사용자가보고 상호 작용하는 모든 것이 기본적으로보기입니다. 예를 들어 버튼은보기, 테이블보기는보기입니다. 응용 프로그램에는 이미 기본보기 컨트롤러가 있거나 기본보기가 있어야하며 0 개 이상의보기를 포함 할 수 있습니다. drawRect: 메소드를 구현할 수있는 위치에 있으면 작성한 모든보기를 그릴 수 있습니다. 여기있는 CoreGraphics 사용하여 그릴 수 수에 UIView 서브 클래스를 구현의 예 : 응용 프로그램에 MyView의 인스턴스를 추가하기 위해,

@interface MyView : UIView 
@end 

@implementation MyView 

- (void)drawRect:(CGRect)dirtyRect { 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextSetRGBFillColor(context, 0, 0, 0, 1); 
    // here, you can draw shapes, for example, a circle: 
    CGContextFillEllipseInRect(context, CGContextMake(10, 10, 50, 50)); 
} 

@end 

다음은 인터페이스 빌더에서 사용자 지정보기에서 드래그 변화 중 하나는 클래스 MyView에, 또는 뷰 컨트롤러의 viewDidLoad에서이 작업을 수행 :

- (void)viewDidLoad { 
    MyView * aView = [[MyView alloc] initWithFrame:self.bounds]; 
    [self.view addSubview:aView]; 
#if __has_feautre(objc_arc) != 1 
    [aView release]; 
#endif 
} 

당신은 당신이 Quartz 2D Programming Guide에서 drawRect 방법으로 무엇을 할 수 있는지에 대해 자세히 알아볼 수 있습니다.

0

HTML 5와 같은 캔버스 <canvas>? "Core Graphics"(a.k.a. Quartz 2D)을 확인하십시오.

관련 문제