標籤:
Graphics Context是圖形上下文,也可以理解為一塊畫布,我們可以在上面進行繪畫操作,繪製完成後,將畫布放到我們的view中顯示即可,view看作是一個畫框.
CGContextRef功能強大,我們藉助它可以畫各種圖形。開發過程中靈活運用這些技巧,可以協助我們提供代碼水平。
說到畫圖,我就立馬想到:我的數學公式都快忘完了。
1.寫文字
- (void)drawRect:(CGRect)rect { //獲得當前畫板 CGContextRef ctx = UIGraphicsGetCurrentContext(); //顏色 CGContextSetRGBStrokeColor(ctx, 0.2, 0.2, 0.2, 1.0); //畫線的寬度 CGContextSetLineWidth(ctx, 0.25); //開始寫字 [@"我是文字" drawInRect:CGRectMake(10, 10, 100, 30) withFont:font]; [super drawRect:rect]; }
2.畫直線
- (void)drawRect:(CGRect)rect { //獲得當前畫板 CGContextRef ctx = UIGraphicsGetCurrentContext(); //顏色 CGContextSetRGBStrokeColor(ctx, 0.2, 0.2, 0.2, 1.0); //畫線的寬度 CGContextSetLineWidth(ctx, 0.25); //頂部橫線 CGContextMoveToPoint(ctx, 0, 10); CGContextAddLineToPoint(ctx, self.bounds.size.width, 10); CGContextStrokePath(ctx); [super drawRect:rect]; }
3.畫圓
- (void)drawRect:(CGRect)rect { //獲得當前畫板 CGContextRef ctx = UIGraphicsGetCurrentContext(); //顏色 CGContextSetRGBStrokeColor(ctx, 0.2, 0.2, 0.2, 1.0); //畫線的寬度 CGContextSetLineWidth(ctx, 0.25); //void CGContextAddArc(CGContextRef c,CGFloat x, CGFloat y,CGFloat radius,CGFloat startAngle,CGFloat endAngle, int clockwise)1弧度=180°/π (≈57.3°) 度=弧度×180°/π 360°=360×π/180 =2π 弧度 // x,y為圓點座標,radius半徑,startAngle為開始的弧度,endAngle為 結束的弧度,clockwise 0為順時針,1為逆時針。 CGContextAddArc(ctx, 100, 20, 20, 0, 2*M_PI, 0); //添加一個圓 CGContextDrawPath(ctx, kCGPathStroke); //繪製路徑 [super drawRect:rect]; }
4.畫矩形
- (void)drawRect:(CGRect)rect { //獲得當前畫板 CGContextRef ctx = UIGraphicsGetCurrentContext(); //顏色 CGContextSetRGBStrokeColor(ctx, 0.2, 0.2, 0.2, 1.0); //畫線的寬度 CGContextSetLineWidth(ctx, 0.25); CGContextAddRect(ctx, CGRectMake(2, 2, 30, 30)); CGContextStrokePath(ctx); [super drawRect:rect]; }
iOS CGContextRef使用簡要教程