IOS之富文本

這幾天公司項目要去寫一個像微博那樣的發(fā)布頁首頁,這里面就涉及到了富文本,對比了很多的app的發(fā)布頁面焕毫,感覺微博做的真實了不得眯娱,在這里先簡單的介紹一下富文本,過幾天陸續(xù)把發(fā)布頁首頁列表的代碼抽出來室埋,好好寫篇文章,詳細(xì)的介紹一些富文本

首頁
發(fā)布頁面

1.什么是富文本伊约?

實際上就是圖文混排词顾,就是過去都是普通的文字,黑色的碱妆,大小一致,但是不能滿足需求昔驱,最后通過富文本技術(shù)疹尾,給一段文字添加不同的屬性,如,大小纳本,顏色窍蓝,超鏈接,鏈接圖片繁成,下劃線吓笙,刪除線等等,大大豐富了我們使用文字的效果巾腕。ios中的富文本專門有一個類面睛,NSAttributedString,當(dāng)然,還有一個可變的NSMutableAttributedString類尊搬。普通的lable叁鉴,buttontextView等UI控件都有text這個屬性顯示普通文本佛寿,如果要去顯示富文本幌墓,要使用他們的attributedText這個屬性賦值,如果你使用了lable.text = attriText,保證不會顯示

2.使用富文本寫個簡單的東西

2.1 只有文字的富文本

最簡單的

    //添加123你好i am fine
    NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:@"123你好 i am fine"];
    //設(shè)置123 redColor冀泻,
    [attr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:24] range:NSMakeRange(0, 3)];
    [attr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 3)];
    //設(shè)置“你好” 為綠色
    [attr addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(4, 2)];
    [attr addAttribute:NSUnderlineColorAttributeName value:[UIColor orangeColor] range:NSMakeRange(4, 2)];
    [attr addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleDouble) range:NSMakeRange(4, 2)];
    //設(shè)置 “i am fine”為高亮
    [attr addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(7, 9)];
    
    self.label.attributedText = attr;

2.2 帶有圖片的富文本

帶有圖片的富文本

    //添加123你好i am fine
    NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:@"123你好 i am fine"];
    //設(shè)置123 redColor常侣,
    [attr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:24] range:NSMakeRange(0, 3)];
    [attr addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0, 3)];
    //設(shè)置“你好” 為綠色
    [attr addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(4, 2)];
    [attr addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleDouble) range:NSMakeRange(4, 2)];
    [attr addAttribute:NSUnderlineColorAttributeName value:[UIColor orangeColor] range:NSMakeRange(4, 2)];
    //設(shè)置 “i am fine”為高亮
    [attr addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(7, 9)];
    
    //添加一張照片
    NSTextAttachment *attach = [[NSTextAttachment alloc] init];
    attach.image = [UIImage imageNamed:@"123.png"];
    NSAttributedString *picAttr = [NSAttributedString attributedStringWithAttachment:attach];
    [attr appendAttributedString:picAttr];
    
    self.label.attributedText = attr;

2.3 修改富文本中的圖片大小

修改之后的富文本
   //通過這句代碼,修改照片的大小
   //但是這個bounds和view的bounds不一樣弹渔,這里的x胳施,y是有用的,而view中的沒有用@谈健=砣椤!
    attach.bounds = CGRectMake(0, 0, 10, 10);

3.用webView通過html加載富文本

通過webView加載出來的富文本鸟召,但是我也不知道通過bundle沒有獲取到地址胆绊,這個可以忽略
     NSString *hmtl = @"<font size='5'>我是好人</font>";
    [self.webview loadHTMLString:hmtl baseURL:nil];

通過這樣的文本就能出來了,原來的代碼全丟了欧募,只能那這個糊上了压状,學(xué)學(xué)h5就可以寫了~

4.富文本的屬性都有哪些

常量

1> NSFontAttributeName(字體)
該屬性所對應(yīng)的值是一個 UIFont 對象。該屬性用于改變一段文本的字體跟继。如果不指定該屬性种冬,則默認(rèn)為12-point Helvetica(Neue)

2> NSParagraphStyleAttributeName(段落)
該屬性所對應(yīng)的值是一個 NSParagraphStyle 對象舔糖。該屬性在一段文本上應(yīng)用多個屬性娱两。如果不指定該屬性,則默認(rèn)為 NSParagraphStyledefaultParagraphStyle 方法返回的默認(rèn)段落屬性金吗。

3> NSForegroundColorAttributeName(字體顏色)
該屬性所對應(yīng)的值是一個 UIColor 對象十兢。該屬性用于指定一段文本的字體顏色趣竣。如果不指定該屬性,則默認(rèn)為黑色旱物。

4> NSBackgroundColorAttributeName(字體背景色)
該屬性所對應(yīng)的值是一個 UIColor 對象遥缕。該屬性用于指定一段文本的背景顏色。如果不指定該屬性宵呛,則默認(rèn)無背景色单匣。

5> NSLigatureAttributeName(連字符)
該屬性所對應(yīng)的值是一個 NSNumber 對象(整數(shù))。連體字符是指某些連在一起的字符宝穗,它們采用單個的圖元符號户秤。0 表示沒有連體字符。1 表示使用默認(rèn)的連體字符讽营。2表示使用所有連體符號虎忌。默認(rèn)值為 1(注意,iOS 不支持值為 2)橱鹏。

6> NSKernAttributeName(字間距)
該屬性所對應(yīng)的值是一個 NSNumber 對象(整數(shù))膜蠢。字母緊排指定了用于調(diào)整字距的像素點數(shù)。字母緊排的效果依賴于字體莉兰。值為 0 表示不使用字母緊排挑围。默認(rèn)值為0。

7> NSStrikethroughStyleAttributeName(刪除線)
該屬性所對應(yīng)的值是一個 NSNumber 對象(整數(shù))糖荒。該值指定是否在文字上加上刪除線杉辙,該值參考“Underline Style Attributes”。默認(rèn)值是NSUnderlineStyleNone捶朵。

8> NSUnderlineStyleAttributeName(下劃線)
該屬性所對應(yīng)的值是一個 NSNumber 對象(整數(shù))蜘矢。該值指定是否在文字上加上下劃線,該值參考“Underline Style Attributes”综看。默認(rèn)值是NSUnderlineStyleNone品腹。

9> NSStrokeColorAttributeName(邊線顏色)
該屬性所對應(yīng)的值是一個 UIColor 對象。如果該屬性不指定(默認(rèn))红碑,則等同于 NSForegroundColorAttributeName舞吭。否則,指定為刪除線或下劃線顏色析珊。更多細(xì)節(jié)見“Drawing attributedstrings that are both filled and stroked”羡鸥。

10> NSStrokeWidthAttributeName(邊線寬度)
該屬性所對應(yīng)的值是一個 NSNumber 對象(小數(shù))。該值改變描邊寬度(相對于字體size 的百分比)忠寻。默認(rèn)為 0惧浴,即不改變。正數(shù)只改變描邊寬度奕剃。負(fù)數(shù)同時改變文字的描邊和填充寬度衷旅。例如哑姚,對于常見的空心字,這個值通常為3.0芜茵。

11> NSShadowAttributeName(陰影)
該屬性所對應(yīng)的值是一個 NSShadow 對象。默認(rèn)為 nil倡蝙。

12> NSVerticalGlyphFormAttributeName(橫豎排版)
該屬性所對應(yīng)的值是一個 NSNumber 對象(整數(shù))九串。0 表示橫排文本。1 表示豎排文本寺鸥。在 iOS 中猪钮,總是使用橫排文本,0 以外的值都未定義胆建。

推薦好文章
讓iOS保持界面流暢的這些技巧烤低,你都知道嗎 YYKit作者寫的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市笆载,隨后出現(xiàn)的幾起案子扑馁,更是在濱河造成了極大的恐慌,老刑警劉巖凉驻,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腻要,死亡現(xiàn)場離奇詭異,居然都是意外死亡涝登,警方通過查閱死者的電腦和手機(jī)雄家,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胀滚,“玉大人趟济,你說我怎么就攤上這事⊙柿” “怎么了顷编?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長褐荷。 經(jīng)常有香客問我勾效,道長,這世上最難降的妖魔是什么叛甫? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任层宫,我火速辦了婚禮,結(jié)果婚禮上其监,老公的妹妹穿的比我還像新娘萌腿。我一直安慰自己,他們只是感情好抖苦,可當(dāng)我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布毁菱。 她就那樣靜靜地躺著米死,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贮庞。 梳的紋絲不亂的頭發(fā)上峦筒,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機(jī)與錄音窗慎,去河邊找鬼物喷。 笑死,一個胖子當(dāng)著我的面吹牛遮斥,可吹牛的內(nèi)容都是我干的峦失。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼术吗,長吁一口氣:“原來是場噩夢啊……” “哼尉辑!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起较屿,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤隧魄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后吝镣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體堤器,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年末贾,在試婚紗的時候發(fā)現(xiàn)自己被綠了闸溃。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡拱撵,死狀恐怖辉川,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拴测,我是刑警寧澤乓旗,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站集索,受9級特大地震影響屿愚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜务荆,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一妆距、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧函匕,春花似錦娱据、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忌穿。三九已至,卻和暖如春结啼,著一層夾襖步出監(jiān)牢的瞬間掠剑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工郊愧, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留澡腾,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓糕珊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親毅糟。 傳聞我的和親對象是個殘疾皇子红选,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,914評論 2 355

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