亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS App開發中用CGContextRef繪制基本圖形的基本示例

2020-07-26 03:20:59
字體:
來源:轉載
供稿:網友

Graphics Context是圖形上下文,也可以理解為一塊畫布,我們可以在上面進行繪畫操作,繪制完成后,將畫布放到我們的view中顯示即可,view看作是一個畫框.
CGContextRef功能強大,我們借助它可以畫各種圖形。開發過程中靈活運用這些技巧,可以幫助我們提供代碼水平。

首先創建一個集成自UIView的,自定義CustomView類。
在CustomView.m中實現代碼。

復制代碼 代碼如下:

#import <QuartzCore/QuartzCore.h>

覆蓋DranRect方法,在此方法中繪制圖形。
CustomView寫好之后,需要使用到視圖控制器中。
使用方法:
復制代碼 代碼如下:

  CustomView *customView = [[CustomView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    [self.view addSubview:customView];

寫文字

復制代碼 代碼如下:

- (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];
}

這段代碼就可以很漂亮的寫出四個大字:我是文字。很容易理解,每句話都有注釋。

畫直線

復制代碼 代碼如下:

- (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];
}

畫弧線

復制代碼 代碼如下:

CGContextSetRGBStrokeColor(context, 0, 0, 1, 1);//改變畫筆顏色
    
    CGContextMoveToPoint(context, 140, 80);//開始坐標p1
    
    //CGContextAddArcToPoint(CGContextRef c, CGFloat x1, CGFloat y1,CGFloat x2, CGFloat y2, CGFloat radius)
    //x1,y1跟p1形成一條線的坐標p2,x2,y2結束坐標跟p3形成一條線的p3,radius半徑,注意, 需要算好半徑的長度,
    CGContextAddArcToPoint(context, 148, 68, 156, 80, 10);
    
    CGContextStrokePath(context);//繪畫路徑
  

畫圓

復制代碼 代碼如下:

- (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];
}

這個畫圓的公式你還記得嗎?你還知道M_PI是什么嗎?等于多少嗎?趕緊腦補一下吧!


畫大圓并填充顏色

復制代碼 代碼如下:

UIColor *aColor = [UIColor colorWithRed:1 green:0.0 blue:0 alpha:1];
    
    CGContextSetFillColorWithColor(context, aColor.CGColor);//填充顏色
    
    CGContextSetLineWidth(context, 3.0);//線的寬度
    
    CGContextAddArc(context, 250, 40, 40, 0, 2 * M_PI, 0); //添加一個圓
    //kCGPathFill填充非零繞數規則,kCGPathEOFill表示用奇偶規則,kCGPathStroke路徑,kCGPathFillStroke路徑填充,kCGPathEOFillStroke表示描線,不是填充
    
    CGContextDrawPath(context, kCGPathFillStroke); //繪制路徑加填充

畫矩形

復制代碼 代碼如下:

- (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];
}

畫扇形

復制代碼 代碼如下:

  //畫扇形,也就畫圓,只不過是設置角度的大小,形成一個扇形
    aColor = [UIColor colorWithRed:0 green:1 blue:1 alpha:1];
    CGContextSetFillColorWithColor(context, aColor.CGColor);//填充顏色
    //以10為半徑圍繞圓心畫指定角度扇形
    CGContextMoveToPoint(context, 160, 180);
    CGContextAddArc(context, 160, 180, 30,  -60 * PI / 180, -120 * PI / 180, 1);
    CGContextClosePath(context);
    CGContextDrawPath(context, kCGPathFillStroke); //繪制路徑
 

   
畫貝塞爾曲線
復制代碼 代碼如下:

 //二次曲線
    CGContextMoveToPoint(context, 120, 300);//設置Path的起點
    CGContextAddQuadCurveToPoint(context,190, 310, 120, 390);//設置貝塞爾曲線的控制點坐標和終點坐標
    CGContextStrokePath(context);
    //三次曲線函數
    CGContextMoveToPoint(context, 200, 300);//設置Path的起點
    CGContextAddCurveToPoint(context,250, 280, 250, 400, 280, 300);//設置貝塞爾曲線的控制點坐標和控制點坐標終點坐標
    CGContextStrokePath(context);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区丝袜| 国产亚洲精品综合一区91| 神马国产精品影院av| 日韩欧美亚洲范冰冰与中字| 91精品国产91久久久久| 欧美性理论片在线观看片免费| 亚洲大胆美女视频| 中文字幕精品一区久久久久| 亚洲国产欧美一区| 亚洲第一福利网站| 日韩免费电影在线观看| 欧美巨大黑人极品精男| 日韩经典中文字幕在线观看| www.日韩欧美| 亚洲色图18p| 国产精品999| 久久精品国产亚洲精品| 国产69精品久久久久99| 91美女高潮出水| 久久久久久久香蕉网| 91久久久久久久久久久久久| 国产精品高潮呻吟视频| 日韩在线观看网址| 亚洲欧美另类自拍| 亚洲黄色片网站| 精品动漫一区二区| 久久综合久久美利坚合众国| 中文字幕亚洲一区在线观看| 欧美老女人性生活| 欧美日韩国产一区二区三区| 国产精品亚洲综合天堂夜夜| 成人444kkkk在线观看| 中文日韩在线观看| 国产91精品网站| 国产精品aaaa| 国a精品视频大全| 亚洲最大福利网站| 亚洲欧美日韩国产中文| 国产精品亚洲视频在线观看| 91sao在线观看国产| 国产精品嫩草影院久久久| 岛国av一区二区三区| 亚洲精品久久久久中文字幕二区| 4p变态网欧美系列| 亚洲丝袜一区在线| 欧美激情三级免费| 久热在线中文字幕色999舞| 久久久久成人网| 日韩欧美在线视频免费观看| 国产精品视频自拍| 精品久久久久久亚洲国产300| 九九精品视频在线观看| 欧美老少做受xxxx高潮| 久久久免费精品视频| 91人人爽人人爽人人精88v| 欧美日韩国产专区| 日韩在线视频观看| 久久久久久久久久久成人| 欧美日韩亚洲成人| 浅井舞香一区二区| 日韩av综合中文字幕| 亚洲欧美综合精品久久成人| 国产精品av免费在线观看| 欧美一区二区三区免费视| 成人免费高清完整版在线观看| 日韩精品免费在线视频观看| 亚洲国产成人91精品| 色视频www在线播放国产成人| xvideos成人免费中文版| 91国偷自产一区二区三区的观看方式| 伊人青青综合网站| 最近2019年好看中文字幕视频| 欧美激情国产高清| 亚洲第一色中文字幕| 精品国内自产拍在线观看| 久久男人av资源网站| 亚洲性无码av在线| 欧美日产国产成人免费图片| 美日韩精品视频免费看| 亚洲天堂男人天堂女人天堂| 亚洲欧美色婷婷| 欧美激情一级精品国产| 亚洲精品久久久久| 国产精品高潮呻吟久久av无限| xxx欧美精品| 日韩av网址在线观看| 久久视频免费观看| 久久久久久中文| 97人洗澡人人免费公开视频碰碰碰| 成人精品一区二区三区电影黑人| 久久精品国产成人| 综合国产在线观看| 亚洲精品98久久久久久中文字幕| 亚洲视频在线免费观看| 日韩中文字在线| 日韩在线观看成人| 国产精品久久久久久久久久东京| 亚洲性视频网址| 欧美夜福利tv在线| 成人黄色免费在线观看| 欧美一级大胆视频| 国内精品一区二区三区四区| 成人啪啪免费看| 亚洲精品中文字幕有码专区| 欧美在线视频免费观看| 亚洲免费高清视频| 国产欧美日韩视频| 亚洲国产古装精品网站| 欧美精品福利视频| 国产亚洲一区二区在线| 欧美在线视频导航| 精品国产31久久久久久| 亚洲成人网久久久| 91精品国产亚洲| 九色精品美女在线| 成人美女免费网站视频| 成人精品aaaa网站| 一区二区三区无码高清视频| 亚洲精品福利在线| 亚洲精品国产美女| 国产在线播放91| 一区二区国产精品视频| 亚洲国产精品资源| 欧美日韩在线第一页| 91精品啪在线观看麻豆免费| 91爱爱小视频k| 最近2019好看的中文字幕免费| 在线亚洲男人天堂| 国产精品爽爽爽| 国产大片精品免费永久看nba| 欧美成人精品影院| 精品美女国产在线| 91欧美日韩一区| 国产成人一区二区三区小说| 欧美高清第一页| 久久这里只有精品视频首页| 国产精品亚洲网站| 欧美成年人视频网站| 中文欧美日本在线资源| 国产精品∨欧美精品v日韩精品| 最近2019中文免费高清视频观看www99| 亚洲成色777777在线观看影院| 欧美重口另类videos人妖| 91免费的视频在线播放| 欧美日韩国产成人| 91色视频在线观看| 欧美一区二粉嫩精品国产一线天| 日本欧美国产在线| 国产999精品久久久影片官网| 日韩欧美精品网站| 91精品国产综合久久久久久久久| 热门国产精品亚洲第一区在线| 国产精品av电影| 欧美重口另类videos人妖| 国产亚洲视频中文字幕视频| 欧美性猛交xxxxx免费看| 国产成人拍精品视频午夜网站| 久久免费视频在线观看| 国产丝袜一区二区三区免费视频| 欧美精品一区在线播放| 成人网页在线免费观看| 91tv亚洲精品香蕉国产一区7ujn| 日韩在线观看你懂的| 亚洲午夜女主播在线直播|