螢幕標記學習筆記

2021-05-25 07:54:56 字數 3291 閱讀 9661

目錄

1 一.基本知識

2 二.具體介紹

在程式中我們可能有需要在iphone

螢幕上繪製線段、圖形等,比如類似地圖應用程式

,我們主要就需要繪製很多的道路線段。常用的線段、圖形等的繪製我們可以使用quartz2d庫提供的繪製線段和各種圖形api來完成。這裡我們主要介紹一下如何在螢幕上繪製文字和,方法分別有兩種,文字可以使用nsstring(uistringdrawing)的方式實現,可以用uiimage(drawingimages)的方式實現;同時文字和的繪製也可以用quartz2d提供的api實現。

1.文字的繪製

(1)方法1

在uistringdrawing.h標頭檔案中提供了在螢幕上繪製文字的函式,根據不同的引數有不同函式形式,具體可以參考nsstring uikit additions reference。這裡主要介紹兩個函式形式。

- (cgsize)drawatpoint:(cgpoint)point withfont:(uifont *)font

在螢幕上特定的位置以指定的字型繪製單行的文字。(附:iphone座標系的原點為螢幕左上角,向右為x座標軸正方向,向下為y座標軸正方向)

- (cgsize)drawinrect:(cgrect)rect withfont:(uifont *)font

這個函式是在螢幕上指定的區域內繪製單行的文字。

**例子:

-(void) drawtextbystring:(nsstring *)drawtext thepoisition:(cgpoint)point

//方式一

[drawtext drawatpoint:point withfont:[uifont systemfontofsize:fontsize]];

(2)方法2

quartz2d提供的文字繪製方法複雜一些,需要並可以設定更多的引數,同時也可以對繪製的文字有更多的控制,比如對文字進行一定角度的旋轉等。

void cgcontextselectfont (

cgcontextref c,

const char *name,

cgfloat size,

cgtextencoding textencoding

選擇繪製的字型,第乙個引數c為繪製的圖形上下文,可以通過cgcontextref context = uigraphicsgetcurrentcontext();方式獲得,第二個引數name為字型的名字,第三個引數size為字型的大小,第四個引數textencoding為字型的編碼。

void cgcontextsettextdrawingmode (

cgcontextref c,

cgtextdrawingmode mode

設定文字的繪製方式,第二個引數代表繪製的模式,可以為kcgtextfill(填充),kcgtextstroke(描邊)或kcgtextfillstroke(即填充又描邊)。

void cgcontextsettextmatrix (

cgcontextref c,

cgaffinetransform t

設定文字變換矩陣,可以在這裡給出文字平移,縮放或者旋轉變換的矩陣,使文字進行相應的變換。

void cgcontextshowtextatpoint (

cgcontextref c,

cgfloat x,

cgfloat y,

const char *string,

size_t length

在給定的位置處繪製文字。前面都是對文字的繪製進行引數設定,設定好後就可以呼叫這個函式進行繪製。引數依次為繪製的圖形上下文,位置的x和y座標,需要繪製的文字和其長度。(注意:這裡的型別是c的const char *,而不是objective-c的nsstring型別)

**例子:

-(void) drawtextbyquartz:(cgcontextref)context thetext:(const char*)drawtext

thepoisition:(cgpoint)point rotateangle:(float)angle

//方式二

cgcontextselectfont(context, "helvetica", fontsize, kcgencodingmacroman);

cgcontextsettextdrawingmode(context, kcgtextfill);

//可以有更多的控制方式,比如旋轉字型

cgaffinetransform mytexttransform =  cgaffinetransformmakerotation(radians (angle));

cgcontextsettextmatrix (context, mytexttransform);

cgcontextshowtextatpoint(context, point.x, point.y, drawtext, strlen(drawtext));

2.的繪製

(1)方法1

uiimage中提供了在螢幕上繪製的函式,主要有兩種形式。

- (void)drawatpoint:(cgpoint)point

在指定的位置繪製。

- (void)drawinrect:(cgrect)rect

在指定的區域繪製,並根據區域的大小對進行縮放。

**例子:

-(void) drawpicbyimage:(uiimage *)theimage thelocation:(cgpoint)point

//方式一

[theimage drawatpoint:point];

-(void) drawpicbyimage:(uiimage *)theimage therect:(cgrect)rect

//方式一

[theimage drawinrect:rect];

(2)方法2

quartz2d提供和繪製函式和uiimage的類似。

void cgcontextdrawimage (

cgcontextref c,

cgrect rect,

cgimageref image

在指定的區域裡繪製一幅。

**例子:

-(void) drawpicbyquartz:(cgcontextref)context thepic:(uiimage *)theimage thelocation:(cgrect)rect

//方式二

cgcontextdrawimage(context, rect, theimage.cgimage);

Zoomit螢幕縮放標記軟體

在尋找一款螢幕縮放 標記軟體的時候,發現了zoomit,感覺挺好用的,現在記一下操作方式 預設熱鍵為ctrl 1進入 退出zoom模式 在zoom模式內,使用 或者滑鼠滾輪控制縮放在zoom模式內,滑鼠右鍵或者esc退出zoom 預設熱鍵為ctrl 2在zoom模式內,按滑鼠左鍵開始畫圖 滑鼠右鍵退...

HTML學習筆記 1 基本標記

html的基本標記 1.頭部標記 head head元素的作用是整篇文件,其中可以有 元資訊定義,文件樣式表定義和指令碼資訊等。文件正式內容 2.標題標記title 標題內容 3.元資訊標記 meta meta元素的資訊不顯示在頁面中,一般來定義頁面資訊的說明,關鍵字,重新整理等。屬性有 1 設定頁...

螢幕旋轉學習筆記

加速計是整個ios螢幕旋轉的基礎,依賴加速計,裝置才可以判斷出當前的裝置方向,ios系統共定義了以下七種裝置方向 typedef ns enum nsinteger,uideviceorientation 以及如下四種介面方向 typedef ns enum nsinteger,uiinte ceo...