CGContextRef 예제 - 그림 그리기
참고로 CGContextRef 는 UIView를 상속받은 클래스에서 사용할 수 있다.
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface MyView : UIView
@end
NS_ASSUME_NONNULL_END
#import "MyView.h"
@implementation MyView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
NSLog(@"initWithFrame 호출");
}
return self;
}
- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
NSLog(@"initWithCoder 호출");
}
return self;
}
- (void)drawRect:(CGRect)rect{
NSLog(@"drawRect 호출");
//1. 객체 생성
CGContextRef context = UIGraphicsGetCurrentContext();
//2. 그리기 시작
CGContextBeginPath(context);
// 3. 포인트(좌표) 이동 (x,y 좌표값을 설정하는데 다음번에 그리게 되면 이 좌표부터 그리게 된다.)
CGContextMoveToPoint(context, 10, 10);
//4. 색상 설정
CGColorRef color = [UIColor redColor].CGColor;
//그려야 할 객체 설정
//4-1. 동그라미 설정
//CGRect ellipseRect = CGRectMake(0, 0, 100, 100);
//CGContextAddEllipseInRect(context, ellipseRect);
//4-2. 라인그리기
//CGContextMoveToPoint(context, 0, 0);
CGContextAddLineToPoint(context, 20, 20);
CGContextAddLineToPoint(context, 30, 30);
//CGContextAddLineToPoint(context, 40, 40);
//CGContextClosePath(context);
CGContextSetLineWidth(context, 2.0);
//5. 색상 채우기
//5-1. 면 색상 설정
CGContextSetFillColorWithColor(context, color);
//5-2. 라인 색상 설정
CGContextSetStrokeColorWithColor(context, color);
//6. 그리기 (주석을 참고하여 3개중에 한개만 사용한다.)
//CGContextDrawPath(context, kCGPathFill); //채워서 그리기
CGContextDrawPath(context, kCGPathStroke); //테두리만 그리기
//CGContextDrawPath(context, kCGPathFillStroke); //테두리와 채우기 그리기
}
@end
참고
그림그리기
soooprmx.com/archives/tag/cgcontextref
기본예제
devhkh.tistory.com/12?category=454750
'아이폰 개발 > ios 개념&튜토리얼' 카테고리의 다른 글
iOS NSStream 이용한 채팅앱 예제 (1) | 2021.03.17 |
---|---|
iOS UIBezierPath 예제 - 그림 그리기 (0) | 2021.02.22 |
iOS 카테고리 예제 - (UIColor 확장하기) (0) | 2021.02.21 |
iOS AVPlayer 영상 재생 예제 (1) | 2021.02.18 |
iOS CLLocation 위도경도, 속도, 이동거리 구하기 (0) | 2021.02.18 |