iOS之UILabel和UITextView富文本操作

由于最近遇到的項目需要用到富文本開發(fā)卡辰,主要的也就是這些胞皱,有些屬性可以按著command鍵指著對應屬性一槍進去看看其他的屬性邪意,在此部多贅述

//
//  ViewController.m
//  NSMutableAttributedString
//
//  Created by WangLe on 16/5/23.
//  Copyright ? 2016年 WangLe. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()<UITextViewDelegate>

@property (nonatomic, strong) UITextView * textView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    _textView = [[UITextView alloc]initWithFrame:CGRectMake(20, 50, 200, 200)];
    UILabel * myLabel = [[UILabel alloc]initWithFrame:CGRectMake(20, 300, 200, 200)];
    myLabel.backgroundColor = [UIColor yellowColor];
    _textView.backgroundColor = [UIColor yellowColor];
    [self.view addSubview:myLabel];
    [self.view addSubview:_textView];
    // 定義一個可變屬性字符串對象
    NSMutableAttributedString * str = [[NSMutableAttributedString alloc]initWithString:@"緩緩飄落的楓葉像思念我點燃燭火溫暖歲末的秋天激光掠過天邊被風掠過想你的思念"];
    // 設置字體大小 range是設置范圍,下同
    [str addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:15] range:NSMakeRange(0, 5)];
    // 設置字體顏色
    [str addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(2, 5)];
    // 設置下劃線
    [str addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:NSMakeRange(3, 7)];
    // 設置字體樣式
    [str addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Geeza Pro" size:25] range:NSMakeRange(5, 5)];
    //NSLog(@"字體集合%@",[UIFont familyNames]);
    // 刪除線 常用于劃掉原價
    [str addAttribute:NSStrikethroughStyleAttributeName value:@(NSUnderlinePatternSolid | NSUnderlineStyleSingle) range:NSMakeRange(8, 5)];
    // 刪除線的顏色(先設置刪除線再設置顏色)
    [str addAttribute:NSStrikethroughColorAttributeName value:[UIColor redColor] range:NSMakeRange(8, 5)];
    // 設置空心字
    [str addAttribute:NSStrokeWidthAttributeName value:@1 range:NSMakeRange(18, 5)];
    // 插入圖片
    NSTextAttachment * att = [[NSTextAttachment alloc]init];
    att.image = [UIImage imageNamed:@"2"];
    NSAttributedString * attStr = [NSAttributedString attributedStringWithAttachment:att];
    [str insertAttributedString:attStr atIndex:25];
    // 添加鏈接
    [str addAttribute:NSLinkAttributeName value:[NSURL URLWithString:@"http://www.baidu.com"] range:NSMakeRange(30, 6)];
    
    // 創(chuàng)建字體段落 行間距 格式
    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    paragraphStyle.lineSpacing = 50;
    paragraphStyle.firstLineHeadIndent = 30;// 設置為字體大小大兩倍
//    _textView.attributedText = [[NSAttributedString alloc] initWithString:str.string attributes:@{
//                                                                        NSFontAttributeName:[UIFont systemFontOfSize:15],
//                                                                        NSParagraphStyleAttributeName:paragraphStyle
//                                                                                                }];
    [str addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, str.string.length)];
    // 這句不能寫前面反砌,不然沒效果
    _textView.attributedText = [str copy];
    _textView.editable = NO;
    _textView.delegate = self;
    myLabel.attributedText = str;
    myLabel.numberOfLines = 0;
}

/**
 *  點擊圖片觸發(fā)代理事件
 */
- (BOOL)textView:(UITextView *)textView shouldInteractWithTextAttachment:(NSTextAttachment *)textAttachment inRange:(NSRange)characterRange
{
    NSLog(@"圖片%@", textAttachment);
    return NO;
}

/**
 *  點擊鏈接雾鬼,觸發(fā)代理事件
 */
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange
{
    [[UIApplication sharedApplication] openURL:URL];
    return YES;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

效果圖如下


05232225.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市宴树,隨后出現(xiàn)的幾起案子策菜,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件又憨,死亡現(xiàn)場離奇詭異翠霍,居然都是意外死亡,警方通過查閱死者的電腦和手機蠢莺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門寒匙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人躏将,你說我怎么就攤上這事锄弱。” “怎么了祸憋?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵会宪,是天一觀的道長。 經(jīng)常有香客問我蚯窥,道長掸鹅,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任沟沙,我火速辦了婚禮河劝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘矛紫。我一直安慰自己赎瞎,他們只是感情好,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布颊咬。 她就那樣靜靜地躺著务甥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪喳篇。 梳的紋絲不亂的頭發(fā)上敞临,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音麸澜,去河邊找鬼挺尿。 笑死,一個胖子當著我的面吹牛炊邦,可吹牛的內(nèi)容都是我干的编矾。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼馁害,長吁一口氣:“原來是場噩夢啊……” “哼窄俏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碘菜,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤凹蜈,失蹤者是張志新(化名)和其女友劉穎限寞,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仰坦,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡履植,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了悄晃。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片静尼。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖传泊,靈堂內(nèi)的尸體忽然破棺而出鼠渺,到底是詐尸還是另有隱情,我是刑警寧澤眷细,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布拦盹,位于F島的核電站,受9級特大地震影響溪椎,放射性物質(zhì)發(fā)生泄漏普舆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一校读、第九天 我趴在偏房一處隱蔽的房頂上張望沼侣。 院中可真熱鬧,春花似錦歉秫、人聲如沸蛾洛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽轧膘。三九已至,卻和暖如春兔甘,著一層夾襖步出監(jiān)牢的瞬間谎碍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工洞焙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蟆淀,地道東北人。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓澡匪,卻偏偏與公主長得像熔任,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子仙蛉,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

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