Quartz 2D 簡單使用

2021-07-03 04:04:23 字數 3650 閱讀 8691

想要在uiview內部繪製一下東西,需要自定義uiview,並且實現uiview的- (void)drawrect:(cgrect)rect方法,為什麼需要實現drawrect:

方法才能繪圖到

view

上,是因為在

drawrect:

方法中才能取得跟

view

相關聯的圖形上下文,

那麼什drawrect:

方法在什麼時候被呼叫呢?

1)當view

第一次顯示到螢幕上(view被加到

uiwindow

上顯示出來)時

2)呼叫

view

的setneedsdisplay

或者setneedsdisplayinrect:

在view內部繪製圖形大概可分為三個步驟

1)獲取與當前view相關的圖形上下文 cgcontextref ctx = uigraphicsgetcurrentcontext();

2)設定繪圖路徑、繪圖狀態

3)把繪圖資訊渲染到view上(確切的說渲染到view的塗層上)    cgcontextstrokepath(ctx); 或者 cgcontextfillpath(ctx);

首先自定義乙個view並且繼承uiview,並實現- (void)drawrect:(cgrect)rect,在該方法中實現繪圖**

- (void)drawrect:(cgrect)rect
具體繪製圖形的**在下面的函式中實現,只要在drawrect:方法呼叫相應繪圖函式即可。

一、畫直線

/**

* 畫直線

*/void drawline()

效果圖

二、畫兩條線寬、顏色不同的直線

/**

* 畫兩條不同狀態的線

*/void drawdiffline()

效果圖

三、畫虛線

/**

* 畫虛線

*/void drawdottedline()

, 3個畫素需要列印(列印段的長度),5個畫素不需要列印(不需要列印段的長度)

列印段與不列印段可以設定為多個段, 如:, 2和6為列印段, 4和1為不列印段

count : 一般設定為 lengths 陣列的個數

*/cgcontextref ctx = uigraphicsgetcurrentcontext();

// 第一條虛線

cgcontextmovetopoint(ctx, 20, 20);

cgcontextaddlinetopoint(ctx, 200, 100);

cgcontextsetlinewidth(ctx, 5);

[[uicolor greencolor] set];

cgfloat lengths1 = ;

cgcontextsetlinedash(ctx, 20, lengths1, 2);

cgcontextstrokepath(ctx);

// 第二條虛線

cgcontextmovetopoint(ctx, 20, 40);

cgcontextaddlinetopoint(ctx, 200, 120);

cgcontextsetlinewidth(ctx, 5);

[[uicolor redcolor] set];

cgfloat lengths2 = ;

cgcontextsetlinedash(ctx, 0, lengths2, 2);

cgcontextstrokepath(ctx);

}

效果圖

四、畫三角形

/**

* 畫三角形

*/void draw********()

效果圖

五、畫矩形

/**

* 畫矩形

*/void draw4rect()

效果圖

六、畫圓、橢圓

/**

* 畫圓、橢圓

*/void drawcircle()

效果圖

七、畫圓弧

/**

* 畫圓弧

*/void drawarc()

效果圖

八、畫文字

/**

* 畫文字

*/void drawtext()

效果圖

九、畫

/**

* 畫

*/void drawimage()

效果圖

十、裁剪

/**

* 裁剪,(在制定的範圍內繪製圖形,不在該範圍內的無法繪製,不顯示)

*/void drawclip()

效果圖

Quartz 2D的簡單使用

quartz 2d的簡單使用 使用quartz 2d這個框架可以在uiview畫出我們自己想畫的圖形,而不用使用系統提供的控制項。但是在要實現這個效果要重寫uiview的 void drawrect cgrect rect方法 1.繪製簡單的線段 void drawrect cgrect rect ...

Quartz2D簡單介紹

quartz2d簡單介紹 一 什麼是quartz2d quartz 2d是 個二維繪圖引擎,同時支援ios和mac系統 quartz 2d能完成的工作 繪製圖形 線條 三角形 矩形 圓 弧等 繪製文字 繪製 生成 影象 讀取 生成pdf 截圖 裁剪 自定義ui控制項 二 quartz2d在ios開發...

iOS 使用Quartz 2D畫線

畫虛線需要用到函式 cgcontextsetlinedash 此函式需要四個引數 cgcontextref context uigraphicsgetcurrentcontext cgcontextbeginpath context cgcontextsetlinewidth context,2.0...