iOS中HTML文字的展示

2021-07-10 13:30:35 字數 2867 閱讀 8898

html文字的顯示依靠nsattributedstring這個類

nshtmltextdocumenttype 只是nsdocumenttypedocumentattribute key一種可能的值。你還可以使用nsplaintextdocumenttype,nsrtftextdocumenttype或是 nsrtfdtextdocumenttype。

//讀取html

nsstring *html = @」wow! now ioscan create from htmls!」;

nsdictionary *options = @;

nsattributedstring *attrstring = [[nsattributedstring alloc] initwithdata:[html datausingencoding:nsutf8stringencoding] options:options documentattributes:nil error:nil];

//構建html

nsattributedstring * attrstring;

nsdictionary *options = @;

nsdata *htmldata = [attrstring datafromrange:nsmakerange(0, [attrstring length]) documentattributes:options error:nil];

nsstring *htmlstring = [[nsstring alloc] initwithdata:htmldata encoding:nsutf8stringencoding];

nsattributedstring的key的意義

nsstring *const nsfontattributename ; // 設定字型,uifont物件,預設12-point helvetica(neue)

nsstring *const nsparagraphstyleattributename ; // (重要)設定段落風格,nsparagraphstyle物件,預設是[nsparagraphstyle defaultparagraphstyle],這裡可以設定很多段落格式,首行縮排之類的

nsstring *const nsforegroundcolorattributename ; // 字型顏色,uicolor物件,預設黑色

nsstring *const nsbackgroundcolorattributename ; // 背景色,uicolor物件,預設透明

nsstring const nsligatureattributename ; // (***)不知道幹嘛用

nsstring *const nskernattributename ; // 字元間距,nsnumber 浮點數,預設為0

nsstring *const nsstrikethroughstyleattributename ; // 刪除線的線粗,nsnumber 整數,預設是nsunderlinestylenone(你真的沒看錯)

nsstring *const nsunderlinestyleattributename ; // 下劃線的線粗,nsnumber 整數,預設同上,還有別的樣式,例如雙下劃線

nsstring *const nsstrokecolorattributename ; // 描邊顏色,uicolor物件,預設同字型顏色

nsstring *const nsstrokewidthattributename ; // 描邊,nsnumber 浮點數,正值表示鏤空描邊,負值標誌填充描邊,值表示描邊線粗

nsstring *const nsshadowattributename ; // 陰影,nsshadow物件,效果參照最後的

nsstring *const nstexteffectattributename ; // 文字風格,nssting物件,預設為nil,官方舉例nstexteffectletterpressstyle,其實也就只有這個風格。。。感覺有跟沒有差不多

nsstring const nsattachmentattributename ; // (***)文字附件屬性, nstextattachment物件,其中包含有,等我找到典型案例再回來重新介紹

nsstring *const nslinkattributename ; // 鏈結某個位址,nsurl(推薦)或nsstring物件,預設為nil不指定任何鏈結。這裡有詳細介紹,

nsstring *const nsbaselineoffsetattributename ; // 基線偏移量,nsnumber 浮點數,可以上下微調字型的位置。(適合那些返回位置資訊不正確的字型)

nsstring *const nsunderlinecolorattributename ; // 下劃線顏色

nsstring *const nsstrikethroughcolorattributename ; // 刪除線顏色

nsstring *const nsobliquenessattributename ; // 斜體,nsnumber 浮點數,預設0,數值表示傾斜度

nsstring *const n***pansionattributename ; // 水平拉伸,nsnumber 浮點數,預設0,水平拉伸字型,高度不變。

nsstring const nswritingdirectionattributename ; // (***)書寫方向,nsarray nsnumber(而且只能是整數0,1,2,3),沒看到什麼效果,找到案例再來更新

nsstring *const nsverticalglyphformattributename; // 水平或垂直顯示,nsnumber(只有0:水平和1:垂直),沒看到效果。。。

iOS中TextView顯示HTML文字

nsattributedstring attributedstring nsattributedstring alloc initwithdata contentstr datausingencoding nsunicodestringencoding options documentattribu...

iOS中如何使橫向展示的文字縱向居中

之前面試過幾個人,乙個很小的問題卻回答的不是很好。自己專案裡也出現過這樣的問題。居中確實是工作了兩三年後才知道怎麼實現的。uilabel 父檢視 高度會跟著螢幕變 uiview superview uiview alloc initwithframe cgrectmake 0,100,320,uis...

HTML識別文字空格回車換行展示

今天寫乙個資訊展示頁面,從後台獲取到textare輸入的內容有文字格式,但是直接把值賦進標籤內,顯示是以文字格式輸出,不符合預期,經查資料,將解決辦法整理如下 txt 獲取到的文字資料 會以原樣輸出,請結合需求使用!pre 標籤定義及使用說明 標籤可定義預格式化的文字。被包圍在標籤 元素中的文字通常...