iOS 응용 프로그램에서 사용할 "캔버스와 같은"요소를 찾고 있습니다. "캔버스와 같은"의미는 직사각형, 선, 텍스트 또는 이미지와 같은 기본 도형을 그릴 수있는 표면을 원한다는 의미입니다. 나는 3D 나 다른 정말로 진보 된 것들을 필요로하지 않는다 - 직사각형과 다른 이미지들로 충분할 것이고, 필요하다면 텍스트는 이미지에 저장 될 수있다.캔버스와 같은 요소
그런 API를 사용할 수 없다고 상상할 수는 없지만 어떻게 호출합니까?
iOS 응용 프로그램에서 사용할 "캔버스와 같은"요소를 찾고 있습니다. "캔버스와 같은"의미는 직사각형, 선, 텍스트 또는 이미지와 같은 기본 도형을 그릴 수있는 표면을 원한다는 의미입니다. 나는 3D 나 다른 정말로 진보 된 것들을 필요로하지 않는다 - 직사각형과 다른 이미지들로 충분할 것이고, 필요하다면 텍스트는 이미지에 저장 될 수있다.캔버스와 같은 요소
그런 API를 사용할 수 없다고 상상할 수는 없지만 어떻게 호출합니까?
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
방법으로 무엇을 할 수 있는지에 대해 자세히 알아볼 수 있습니다.
HTML 5와 같은 캔버스 <canvas>
? "Core Graphics"(a.k.a. Quartz 2D)을 확인하십시오.
참조 http://stackoverflow.com/questions/6724800/how-to-use-drawrect-to-draw-in-a-existing-view/6725315#6725315 –