一箱季、基本圖形繪制-畫線

Quarz 2D是一個二維繪圖引擎,用它能夠:
?繪制圖形:線條棍掐、三角形藏雏、矩形、圓作煌、弧等
?繪制文字
?繪制\生成圖片(圖像)
?讀取\生成PDF
?截取\裁剪圖片
?自定義UI控件

Quarz 2D實(shí)例:

Quarz 2D能做很多強(qiáng)大的事情掘殴,比如
?裁剪圖片\圓形裁剪,
? 涂鴉畫板,
? 以及手勢解鎖粟誓,
? 報表(折線圖奏寨,餅狀圖,柱狀圖)

自定義view

在你的view上畫東西鹰服,首先你要明白“圖形上下文(Graphics Context)”的概念

  • 圖形上下文(Graphics Context):你可以想象理解成畫板病瞳,它是一個CGContextRef類型的數(shù)據(jù),屬于CoreGraphics(核心繪圖)框架悲酷。
  • 圖形上下文的作用:
    ?保存繪圖信息套菜、繪圖狀態(tài)
    ?決定繪制的輸出目標(biāo)(繪制到什么地方)(輸出的目標(biāo)可以是PDF文件,Bitmap或者顯示器的窗口上)
  • 相同的一套繪圖序列设易,指定不同的Graphics Context逗柴,就可以將相同的圖像繪制到不同的目標(biāo)

? Quarz 2D提供了以下幾種類型的圖形上下文:

?Bitmap Graphics Context
? PDF Graphics Context
?Window Graphics Context
?Layer Graphics Context
?Printer Graphics Context

自定義view

  • 如何利用Quarz 2D繪制東西到view上?
    ?首先得有圖形上下文顿肺,因為它能保存繪圖信息戏溺,并且決定著繪制到什么地方去
    ?其次渣蜗,哪個圖形上下文必須跟view相關(guān)聯(lián),才嫩將內(nèi)容繪制到view上面
  • 自定義View步驟:
    ?新建一個類旷祸,繼承自UIView
    ?實(shí)現(xiàn)- (void)drawRect:(CGRect)rect方法耕拷,然后在這個方法中:
    • 取得跟當(dāng)前view相關(guān)聯(lián)的圖形上下文
    • 繪制相應(yīng)的圖形內(nèi)容---描述路徑
    • 利用圖形上下文繪制的所有內(nèi)容渲染顯示到view上

新建一個MuView類,繼承自UIView
#import <UIKit/UIKit.h>
@interface MuView : UIView
@end
在故事版中拖拽一個UIView,讓其綁定MuView類型
drawRect
#import "MuView.h"
@implementation MuView
- (void)drawRect:(CGRect)rect{
/*因為只有在drawRect這個方法里面才能獲取到跟view的layer相關(guān)聯(lián)的圖形上下文
*rect是當(dāng)前控件的bounds
*當(dāng)這個view要顯示的時候托享,才會調(diào)用drawRect繪制圖形
*/
[self ..];

@end

.

  -(void)drawLine{
    //    1獲取圖形上下文
    //     目前我們所用的上下文都是以UIGraphics開頭的
    //    CGContextRef Ref飲用  CG:目前使用到的類型和函數(shù) 一般都是CG開頭 CoreGraphics
    CGContextRef ctf = UIGraphicsGetCurrentContext();

    //    2描述路徑
    //    創(chuàng)建路徑
    CGMutablePathRef path = CGPathCreateMutable();
    //設(shè)置起點(diǎn)
    //path:給哪個路徑設(shè)置起點(diǎn) CGAffineTransform:形變 x斑胜、y代表起點(diǎn)
    CGPathMoveToPoint( path, NULL, 50, 50);

    //添加一根線到某個點(diǎn)
    CGPathAddLineToPoint(path, NULL, 200, 200);

    //    3把路徑添加到上下文
    CGContextAddPath(ctf, path);
    //    4渲染上下文
    CGContextStrokePath(ctf);


}

.

- (void)drawLine1{
    //    獲取上下文
    CGContextRef ref = UIGraphicsGetCurrentContext();
    //    描述路徑
    //    設(shè)置起點(diǎn) 在這底層會幫我們創(chuàng)建一個path
    CGContextMoveToPoint(ref, 150, 150);
    CGContextAddLineToPoint(ref, 50, 50);

    //    渲染上下文
    CGContextStrokePath(ref);
}

.

-(void)drawLine2{
 //UIKIT已經(jīng)幫我們封裝了一些繪圖的功能
UIBezierPath *path = [UIBezierPath bezierPath];
//    設(shè)置起點(diǎn)
[path moveToPoint:CGPointMake(50, 50)];
//    添加一根線到某個點(diǎn)
[path addLineToPoint:CGPointMake(100, 100)];
//    繪制路徑
[path stroke];
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嫌吠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掺炭,老刑警劉巖辫诅,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異涧狮,居然都是意外死亡炕矮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進(jìn)店門者冤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肤视,“玉大人,你說我怎么就攤上這事涉枫⌒匣” “怎么了?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵愿汰,是天一觀的道長困后。 經(jīng)常有香客問我,道長衬廷,這世上最難降的妖魔是什么摇予? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮吗跋,結(jié)果婚禮上侧戴,老公的妹妹穿的比我還像新娘。我一直安慰自己跌宛,他們只是感情好酗宋,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著疆拘,像睡著了一般本缠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上入问,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天丹锹,我揣著相機(jī)與錄音稀颁,去河邊找鬼。 笑死楣黍,一個胖子當(dāng)著我的面吹牛匾灶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播租漂,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼阶女,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了哩治?” 一聲冷哼從身側(cè)響起秃踩,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎业筏,沒想到半個月后憔杨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蒜胖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年消别,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片台谢。...
    茶點(diǎn)故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡寻狂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出朋沮,到底是詐尸還是另有隱情蛇券,我是刑警寧澤,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布樊拓,位于F島的核電站怀读,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏骑脱。R本人自食惡果不足惜菜枷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望叁丧。 院中可真熱鬧啤誊,春花似錦、人聲如沸拥娄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽稚瘾。三九已至牡昆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丢烘。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工柱宦, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人播瞳。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓掸刊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親赢乓。 傳聞我的和親對象是個殘疾皇子忧侧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容