富文字的使用

2021-07-28 02:22:32 字數 4111 閱讀 9175

一,理解

對於以前,我們用label進行新增文字的時候,只是在 label的本身上新增,從來沒有考慮過其他的方式,今天呢,由於我看了別人的一片技術部落格,有感所以就記錄了下來,希望能夠幫助到那些有需要的人

不帶段落分析的

**如下:

nsstring

*str =

@"也許我們的心裡藏有乙個海洋,流出來的卻是兩行清淚,可我並不感到孤單,我只是簡單地喜歡書寫淒涼。曾經我們敷衍的情緒,在別人記憶的曲線裡漸行漸遠漸無言。難道曾經的悸動,只是歲月留給我乙個人的錯覺,我有點不相信自己的眼睛。我沒有哭泣,只是學會了思念而已。";

//建立富文字

nsmutableattributedstring

*attributestr = [[

nsmutableattributedstring

alloc

]initwithstring

:str]; //

設定文字的顏色

[attributestr

addattribute

:nsforegroundcolorattributename

value

:[uicolor

redcolor

] range

:nsmakerange(0

, 6)];

//設定文字的大小

[attributestr

addattribute

:nsfontattributename

value

:[uifont

systemfontofsize:26

] range

:nsmakerange(0

, 6)];

//設定文字的背景顏色

[attributestr

addattribute

:nsbackgroundcolorattributename

value

:[uicolor

yellowcolor

] range

:nsmakerange(0

, 6)];

//設定文字的下劃線

[attributestr

addattribute

:nsunderlinestyleattributename

value

:[nsnumber

numberwithinteger

:nsunderlinestylesingle

] range

:nsmakerange(0

, 6)];

//設定字元間的間距

[attributestr

addattribute

:nskernattributename

value

:@(5)

range

:nsmakerange(0

, str.

length- 1

)]; //

建立label

uilabel

*label = [[

uilabel

alloc

]initwithframe

:cgrectmake(0

, 20

, self

.view

.bounds

.size

.width+ 5

, 40

)];

//設定

label

中的字型

label.

attributedtext

= attributestr; //

設定label

中的字型允許換行

label.

numberoflines= 0

; //設定

label

的高度自適應

[label

sizetofit];

//設定

label

的背景顏色

label.

backgroundcolor

= [uicolor

greencolor];

//將label

新增到檢視上 [

self

.view

addsubview

:label];

執行結果:

下面是帶段落分析的

執行**:

nsstring

*str =

@"也許我們的心裡藏有乙個海洋,流出來的卻是兩行清淚,可我並不感到孤單,我只是簡單地喜歡書寫淒涼。

\n曾經我們敷衍的情緒,在別人記憶的曲線裡漸行漸遠漸無言。

\n難道曾經的悸動,只是歲月留給我乙個人的錯覺,我有點不相信自己的眼睛。

\n我沒有哭泣,只是學會了思念而已。";

//建立富文字

nsmutableattributedstring

*attributestr = [[

nsmutableattributedstring

alloc

]initwithstring

:str]; //

建立段落的樣式

nsmutableparagraphstyle

*paragraph = [[

nsmutableparagraphstyle

alloc

]init];

//設定段落的行間距

paragraph.

linespacing

= 10;

//設定段落之間的間距

paragraph.

paragraphspacing

= 15;

//設定首行縮緊的字數

paragraph.

firstlineheadindent

= 30;

//設定全部縮排

paragraph.

headindent

= 30;

//設定對齊方式

paragraph.

alignment

= nstextalignmentleft;

//新增段落設定

[attributestr

addattribute

:nsparagraphstyleattributename

value

:paragraph

range

:nsmakerange(0

, str.

length

)]; //

建立label

uilabel

*label = [[

uilabel

alloc

]initwithframe

:cgrectmake(0

, 20

, self

.view

.bounds

.size

.width+ 5

, 40

)];

//設定

label

中的字型

label.

attributedtext

= attributestr; //

設定label

中的字型允許換行

label.

numberoflines= 0

; //設定

label

的高度自適應

[label

sizetofit];

//設定

label

的背景顏色

label.

backgroundcolor

= [uicolor

greencolor];

//將label

新增到檢視上 [

self

.view

addsubview

:label];

執行結果:

簡化富文字的使用

簡化富文字的使用 1.如果不進行任何的封裝,直接使用富文字會破壞可讀性,可讀性極差 2.本例子提供了維護性較強的封裝 3.本人僅僅實現了兩種富文字的例項 設定文字字型以及文字屬性 剩下的可以參考本人的實現來進行擴充套件 4.每一種富文字屬性都應該抽象成乙個類,而通過統一的介面進行管理 本例子中,僅僅...

swift 富文字文字的簡單使用

如果需要乙個字元前後文字顏色不一樣,也就是說乙個字串分成多個部分,每個部分的屬性 顏色,字型,大小等 不一樣,那就是富文字文字 nsmutableattributedstring 直接上 了 let str 今宵杯中映著明月 物華天寶人傑地靈 let attrstr nsmutableattribu...

vue富文字使用詳解

一 cnpm 安裝 vue quill editor cnpm install vue quill editor二 在main.js中引入import vuequilleditor from vue quill editor require styles 引入樣式 import quill dist...