iOS :Quartz2D - 直線繪制

繪制
  • Quartz 2D 是一個二維繪圖引擎,同時支持iOS 和 Mac系統(tǒng)
  • Quartz 2D 能完成的工作:
1状原、繪制圖形: 線條、三角形臭挽、矩形、圓和弧等咬腕;
2欢峰、繪制文字;
3涨共、繪制纽帖,生成圖片(圖像);
4举反、讀取懊直,生成PDF;
5火鼻、截圖室囊,裁剪圖片;
6魁索、自定義 UI 控件(普通的 UI 控件無法使用 UIkit 框架實現融撞,可以使用 Quartz 2D 技術將控件內部的結構畫出來,自定義控件的樣子粗蔚,例如五角星??)尝偎。

圖像上下文:“畫板”

  • 圖形上下文(Graphics Context): 是一個 CGContextRef 類型的數據;
  • 圖行上下文的作用:
1鹏控、保存繪制信息致扯,繪圖狀態(tài);
2当辐、決定繪制的輸出目標(繪制到什么地方去抖僵?):輸出目標可以是PDF文件、Bitmap(位圖)或者顯示器的窗口上缘揪;
3耍群、相同的一套繪圖序列,指定不同的 Graphics Context寺晌,就可將想吐的圖像繪制到不同的目標世吨。

繪制流程

圖形上下文類型

  • Bitmap Graphics Context
  • PDF Graphics Context
  • Window Graphics Context
  • Layer Graphics Context

自定義 View

  • 新建一個類澡刹,繼承自 UIview
  • 實現 - (void)drawRect:(CGRect)rect 方法(只有在這個方法里呻征,才能獲取圖像上下文,和View 相關聯(lián))罢浇,然后在這個方法中:
1陆赋、取得跟當前 view 相關聯(lián)的圖像上下文沐祷;
2、繪制相應的圖形內容攒岛;
3赖临、利用圖形上下文將繪制的所有內容渲染顯示到 view 上面



繪制效果

繪制直線

方法一:開發(fā)中不常用

    //1、獲取圖像的上下文
   CGContextRef ctx = UIGraphicsGetCurrentContext();
    // 2灾锯、繪制描述路徑
    CGMutablePathRef path =   CGPathCreateMutable();
    // 3兢榨、繪制路徑的起點
    CGPathMoveToPoint(path, NULL, 50, 50);
    CGPathAddLineToPoint(path, NULL, 200, 200);
    //把路徑添加到上下文
    CGContextAddPath(ctx, path);
    //4、 渲染上下文
    CGContextStrokePath(ctx);


方法二:

    // 獲取上下文 本身封裝的方法顺饮,路徑封裝了
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    //描述路徑
    //添加起點
    CGContextMoveToPoint(ctx, 50, 50);
    //添加直線
    CGContextAddLineToPoint(ctx, 200, 200);
    //渲染上下文
    CGContextStrokePath(ctx);

方法三:開發(fā)建議使用

    // UIkit 自己封裝的繪制功能 貝塞爾路徑繪制
    // 創(chuàng)建路徑
    UIBezierPath *path = [UIBezierPath bezierPath];
    // 路徑起點
    [path moveToPoint:CGPointMake(50, 50)];
    // 添加線到
    [path addLineToPoint:CGPointMake(200, 200)];
    // 渲染路徑
    [path stroke];

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末吵聪,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子兼雄,更是在濱河造成了極大的恐慌吟逝,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赦肋,死亡現場離奇詭異块攒,居然都是意外死亡,警方通過查閱死者的電腦和手機佃乘,發(fā)現死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門囱井,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人趣避,你說我怎么就攤上這事琅绅。” “怎么了鹅巍?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵千扶,是天一觀的道長。 經常有香客問我骆捧,道長澎羞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任敛苇,我火速辦了婚禮妆绞,結果婚禮上,老公的妹妹穿的比我還像新娘枫攀。我一直安慰自己括饶,他們只是感情好,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布来涨。 她就那樣靜靜地躺著图焰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蹦掐。 梳的紋絲不亂的頭發(fā)上技羔,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天僵闯,我揣著相機與錄音,去河邊找鬼藤滥。 笑死鳖粟,一個胖子當著我的面吹牛,可吹牛的內容都是我干的拙绊。 我是一名探鬼主播向图,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼标沪!你這毒婦竟也來了张漂?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤谨娜,失蹤者是張志新(化名)和其女友劉穎航攒,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體趴梢,經...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡漠畜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了坞靶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片憔狞。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖彰阴,靈堂內的尸體忽然破棺而出瘾敢,到底是詐尸還是另有隱情,我是刑警寧澤尿这,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布簇抵,位于F島的核電站,受9級特大地震影響射众,放射性物質發(fā)生泄漏碟摆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一叨橱、第九天 我趴在偏房一處隱蔽的房頂上張望典蜕。 院中可真熱鬧,春花似錦罗洗、人聲如沸愉舔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽轩缤。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間典奉,已是汗流浹背躺翻。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工卫玖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人踊淳。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓假瞬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親迂尝。 傳聞我的和親對象是個殘疾皇子脱茉,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內容