圖文混排的實現

下載地址 : https://github.com/AlanZhangQ/CoreTextLabel.git, 求Star..如果有好的建議或者意見,請留言指出,謝謝 

1 .普通圖片文字混排

  _coretextLabel = [[MYCoreTextLabel alloc]init];
    _coretextLabel.delegate = self;

    _coreTextLabel.imageSize = CGSizeMake(25, 25);  // 設置圖片尺寸 , 默認和字體一樣

    //設置普通文本屬性
    _coreTextLabel.textFont  = [UIFont systemFontOfSize:16.f]; //設置普通文本大小 , 默認14.f
    _coreTextLabel.textColor = [UIColor brownColor]; //設置普通文本字體顏色 , 默認黑色
    _coreTextLabel.lineSpacing = 5;  //設置行間距
    _coreTextLabel.wordSpacing = 2;  //設置字間距


    //如果不需要任何的自定義鏈接和關鍵字, 賦值nil即可
    [_coreTextLabel setText:@"滿街腳步突然靜[調皮]了,滿天柏樹突然沒有[白眼]動搖,這一剎[擦汗]我只需要一罐熱茶吧,那味道似是[滑稽]什麼都不緊要,唱片店內[擦汗]傳來異國民謠,那種快樂[白眼]突然被我需要,不親切[調皮]至少不似想你般[齜牙]奧妙,情和調隨著懷緬變得蕭條,原來過得很快樂[擦汗],[白眼]只我一人未發覺,如能忘掉渴望,[花心]歲月長衣裳薄,無論於什麼角落[噘嘴],不假設你或會在旁,我也可暢遊異國放心吃喝[調皮][調皮][調皮]" customLinks:nil keywords:nil];

    CGSize size = [coreTextLabel sizeThatFits:CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
    self.coreTextLabel.frame = CGRectMake(0, 100, size.width, size.height);
    [self.view addSubview:coreTextLabel];

這裏寫圖片描述 





2. 帶鏈接(@,#話題#,網址)的文字和自定義的鏈接的混排

 _coretextLabel = [[MYCoreTextLabel alloc]init];
    _coretextLabel.delegate = self;

    //是否匹配網址鏈接 , 以及相關設置
    _coretextLabel.showWebLink = YES;
    _coretextLabel.webLinkBackColor = [UIColor redColor];  //設置網址鏈接點擊背景色
    _coretextLabel.webLinkFont = [UIFont systemFontOfSize:20]; //設置網址鏈接的字體大小
    _coretextLabel.webLinkColor = [UIColor greenColor]; //設置網址鏈接的顏色

    //匹配 #話題#鏈接
    _coretextLabel.showTopicLink = YES;
    _coretextLabel.topicLinkColor  = [UIColor redColor];
    _coretextLabel.topicLinkFont = [UIFont systemFontOfSize:20];
    _coretextLabel.topicLinkBackColor = [UIColor grayColor];


    //匹配 @ 鏈接
    _coretextLabel.showTrendLink = YES;
    //如果不設置任何相關信息 , 默認和普通文本大小一致  , 顏色默認藍色


    //匹配手機號鏈接
    _coretextLabel.showPhoneLink = YES;
    _coretextLabel.phoneLinkFont = [UIFont systemFontOfSize:15.f];
    _coretextLabel.phoneLinkColor = [UIColor purpleColor];
    _coretextLabel.phoneLinkBackColor = [UIColor brownColor];

    //匹配郵箱鏈接
    _coretextLabel.showMailLink = YES;
    //如果不設置任何相關信息 , 默認和普通文本大小一致  , 顏色默認藍色

    //設置自定義點擊鏈接爲  @"哥哥"
    [_coretextLabel setText:@"阿南。#測試#現在每次吃栗子我都會想起父親,想起小時候每到深秋,父親#測試#在地裏幹農活都會在家鄉的山間摘好多野栗子回來給我吃,他不給哥哥吃,他自己也不吃。只給我一個人吃。看到你在書裏寫給阿明的信,好幾次我都哽咽了。阿明尚ww.dsa.cn且對你如此,可你卻還的如此的愛他www.baidu.com。可對於我的父親,我深覺自己做的這www.google.cn些微不足道,甚至不值一提。去年他動手術,我和哥哥送他去醫院,晚上,我和哥哥離開,只留他#測試#一人在醫院。第二日,我去醫院@小明 看到手術後的他躺在病牀上憔悴不已。母親守在一旁。心揪成一團。三個月前哥哥大婚,看他和母親忙前忙後,看到他滿臉的鬍渣以及母親雙鬢若隱若現的白髮。更是心痛不已。www.123.com , 手機號鏈接13912345678 , 郵箱鏈接[email protected]" customLinks:@[@"哥哥"] keywords:nil];

         //設置frame
         CGSize size              = [coretextLabel sizeThatFits:CGSizeMake(200, 600)];
         self.coretextLabel.frame = CGRectMake(100, 100, size.width, size.height);
         [self.view addSubview:coretextLabel];

這裏寫圖片描述




3.帶關鍵字高亮顯示的混排

_coretextLabel = [[MYCoreTextLabel alloc]init];

    //設置普通文本屬性
    _coretextLabel.textFont = [UIFont systemFontOfSize:14.f]; //設置文本大小
    _coretextLabel.textColor = [UIColor brownColor];       // 設置文本顏色
    _coretextLabel.lineSpacing = 2;    //設置行間距
    _coretextLabel.wordSpacing = 1.5;  //設置字間距

    //設置關鍵字屬性
    _coretextLabel.keywordFont = [UIFont systemFontOfSize:20];
    _coretextLabel.keyWordColor = [UIColor redColor]; //設置關鍵字顏色
    _coretextLabel.keyWordBackColor = [UIColor blueColor]; //設置關鍵字背景高亮色 , 如果不需要可自行調整爲透明 或者和背景色一樣 , 默認是黃色的

    [_coretextLabel setText:@"山腳至山腰是茂盛青翠的馬尾松、楠木、雲杉、楓樹等樹林,綿延幾十公里,瞬間把遊客帶進世外桃源。山腰朝上,雜生着三百多種杜鵑樹,杜鵑樹不高,一米兩米不等,馬櫻花類居多。聽導遊介紹,“大理三月好風光”時節,三百多種杜鵑花盛開,將蒼山裝扮成花的海洋。www.google.cn 紅色、白色、紫色交相輝映,恍惚人間天堂。海拔四千米以上,由於氣候寒冷,草木無法生長,終年積雪,皚皚如白雲飄落山頂.蒼山巍峨,十九座尖峯高聳入雲,山頂白雪皚皚,晶瑩剔透,猶如海明威小說中的乞力馬紮羅雪峯,“蒼山雪”由此而來。雪峯下是草甸,@順坡勢綿延着一望無際的綠草,莽莽蒼蒼,微風過處,送來陣陣遠古蒼茫。草叢中,潔白的大雪素展示膚色,藍色龍膽不停地眨眼,緋紅綠絨蒿賣弄衣裳,金色的柴胡在招搖,紅色紫雲英微笑不停……更有許多不知道名字的雜草一個勁地綠,陽光下開心地開滿了花朵,朵朵都在人們眼前盼望,www.baidu.com美麗可愛野花是雪峯的祝福,#是山坡的語言#,#是蒼山的心事#,是小草和花朵爲滄桑寫下的抒情詩歌。成雙成對的彩斑蝶於花海中翩翩起舞,嗡嗡的蜜蜂在花瓣間打鬧。草甸以下青一色鬱鬱蔥蔥的林海,四季青翠的馬尾松,筆直修長的杉木,高大俊秀的楓樹,@枝繁葉茂的楠木,搖弋多姿的板栗……逍遙的松鼠在樹枝間練功,喜鵲逗留樹頂啁啾,子規在杜鵑枝縫裏跳躍,金絲鳥在草叢嬉戲,@好不熱鬧!樹下,螞蟻在腐爛落葉堆中穿行……林間仙霧繚繞,清香沁肺。十九峯高聳入雲,巍峨雄壯,山峯下溝壑縱橫;十八溪流水潺潺,澗泉汩汩,飛瀑掛於岩石懸崖。姊妹山——雞足山頂廟塔玲瓏剔透,金碧輝煌;北面玉龍雪山莽莽蒼蒼,冰清玉潔。玉局峯下百餘米處有個方圓十來畝的圓形水潭,名叫洗馬潭,是玉局峯、龍泉峯雪水積澱而成,潭水清澈,灩灩如夢" customLinks:@[@"十九"] keywords:@[@"蒼山",@"大理",@"導遊"]];
    //customLinks : 添加自定義鏈接字 , 如不需要 , 傳nil , 可以添加自定義鏈接的一些屬性
    //keywords : 關鍵字 ,如不需要,傳nil即可
    _coretextLabel.delegate = self;  //設置代理便可監聽點擊的文本以及類型

    CGSize size = [coretextLabel sizeThatFits:CGSizeMake([UIScreen mainScreen].bounds.size.width, MAXFLOAT)];
    coretextLabel.frame = CGRectMake(0, 100, size.width, size.height);
    [self.view addSubview:coretextLabel];

這裏寫圖片描述





4. 比較複雜的用法, 包含網址鏈接,關鍵字顯示,自定義鏈接,圖片混排

_coretextLabel = [[MYCoreTextLabel alloc]init];

    //設置普通文本的屬性
    _coretextLabel.textFont = [UIFont systemFontOfSize:15.f];   //設置普通內容文字大小
    _coretextLabel.textColor = [UIColor brownColor];   // 設置普通內容文字顏色
    _coretextLabel.lineSpacing = 5;   //設置行間距
    _coretextLabel.wordSpacing = 0.5; //設置字間距

    //設置網址鏈接的屬性
    _coretextLabel.showWebLink  = YES;
    _coretextLabel.webLinkFont = [UIFont systemFontOfSize:18.f];  //設置網址鏈接字體大小
    _coretextLabel.webLinkColor = [UIColor blueColor];  //設置網址鏈接字體顏色
    _coretextLabel.webLinkBackColor = [UIColor redColor];  //設置網址鏈接點擊背景色

    //設置 #話題#的屬性
    _coretextLabel.showTopicLink = YES;
    _coretextLabel.topicLinkFont = [UIFont systemFontOfSize:15.f];
    _coretextLabel.topicLinkColor = [UIColor redColor];
    _coretextLabel.topicLinkBackColor = [UIColor blackColor];

    //設置 @ 的屬性
    _coretextLabel.showTrendLink = YES;
    _coretextLabel.trendLinkFont = [UIFont systemFontOfSize:18];
    _coretextLabel.trendLinkColor = [UIColor purpleColor];
    _coretextLabel.trendLinkBackColor = [UIColor darkGrayColor];

    //設置郵箱的屬性
    _coretextLabel.showMailLink = YES;
    _coretextLabel.mailLinkFont = [UIFont systemFontOfSize:18.f];
    _coretextLabel.mailLinkColor = [UIColor redColor];
    _coretextLabel.mailLinkBackColor = [UIColor greenColor];

    //設置手機號的屬性
    _coretextLabel.showPhoneLink = YES;
    _coretextLabel.phoneLinkFont = [UIFont systemFontOfSize:15.f];
    _coretextLabel.phoneLinkColor = [UIColor redColor];
    _coretextLabel.phoneLinkBackColor = [UIColor blueColor];

    //設置自定義鏈接的屬性
    _coretextLabel.customLinkFont = [UIFont systemFontOfSize:18.f];  //設置自定義鏈接字 字體大小
    _coretextLabel.customLinkColor = [UIColor greenColor];  //設置自定義鏈接字體顏色
    _coretextLabel.customLinkBackColor = [UIColor orangeColor];  //設置自定義鏈接點擊背景色

    //設置關鍵字的屬性
    _coretextLabel.keywordFont = [UIFont systemFontOfSize:15];
    _coretextLabel.keyWordColor = [UIColor blueColor];  //設置關鍵字顏色
    _coretextLabel.keyWordBackColor = [UIColor yellowColor];  //設置關鍵字高亮背景色

    _coretextLabel.delegate = self;   //設置代理 , 用於監聽點擊事件 以及接收點擊內容等

    //設置frame
    CGSize size = [coretextLabel sizeThatFits:CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height)];
    self.coretextLabel.frame = CGRectMake(0, 20, size.width, size.height);
    [self.view addSubviews:coretextLabel];

這裏寫圖片描述

下載地址 :  https://github.com/AlanZhangQ/CoreTextLabel.git , 求Star..如果有好的建議或者意見,請留言指出,謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章