YYText使用篇(三)

版本記錄

版本號(hào) 時(shí)間
V1.0 2017.06.06

前言

YYText是一個(gè)專門處理文字的框架镊掖,有了它處理文字變得非常方便,這一篇我繼續(xù)介紹YYText的使用方法,希望對(duì)大家能有所幫助锋八。大家如感興趣還可以參考:
1.YYText使用篇(一)
2.YYText使用篇(二)

一挂捅、YYText圖文混排

下面首先看所需要的方法

/**
 Creates and returns an attachment.
 
 
 Example: ContentMode:bottom Alignment:Top.
 
      The text      The attachment holder
         ↓                ↓
     ─────────┌──────────────────────┐───────
        / \   │                      │ / ___|
       / _ \  │                      │| |
      / ___ \ │                      │| |___     ←── The text line
     /_/   \_\│    ██████████████    │ \____|
     ─────────│    ██████████████    │───────
              │    ██████████████    │
              │    ██████████████ ←───────────────── The attachment content
              │    ██████████████    │
              └──────────────────────┘

 @param content        The attachment (UIImage/UIView/CALayer).
 @param contentMode    The attachment's content mode in attachment holder
 @param attachmentSize The attachment holder's size in text layout.
 @param fontSize       The attachment will align to this font.
 @param alignment      The attachment holder's alignment to text line.
 
 @return An attributed string, or nil if an error occurs.
 @since YYText:6.0
 */
+ (NSMutableAttributedString *)yy_attachmentStringWithContent:(nullable id)content
                                                  contentMode:(UIViewContentMode)contentMode
                                               attachmentSize:(CGSize)attachmentSize
                                                  alignToFont:(UIFont *)font
                                                    alignment:(YYTextVerticalAlignment)alignment;

下面我們看個(gè)例子

#import "JJTextVC.h"
#import "YYText.h"

@interface JJTextVC ()

@end

@implementation JJTextVC

#pragma mark - Override Base Function

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor lightTextColor];
    
    self.title = @"YYText";

    //圖文混排
    [self imageTextLayout];
}

#pragma mark - Object Private Function

//圖文混排
- (void)imageTextLayout
{
    NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:@"舊時(shí)月色,算幾番照我,梅邊吹笛?喚起玉人,不管清寒與攀摘.何遜而今漸老,都忘卻,春風(fēng)詞筆. "];
    UIFont *font = [UIFont systemFontOfSize:18];
    
    // 嵌入 UIImage
    UIImage *image = [UIImage imageNamed:@"group_prooerty_selected"];
    NSMutableAttributedString *attachment = nil;
    attachment = [NSMutableAttributedString yy_attachmentStringWithContent:image contentMode:UIViewContentModeCenter attachmentSize:image.size alignToFont:font alignment:YYTextVerticalAlignmentCenter];
    [text appendAttributedString: attachment];
    
    NSMutableAttributedString *text1 = [[NSMutableAttributedString alloc] initWithString:@"但怪得,竹外疏花,春冷入瑤席.江國(guó),正寂寂.嘆寄與路遙,夜雪初積.翠尊易泣,紅萼無(wú)言耿相憶.常記曾攜手處,千樹壓.梅湖寒碧,又片片吹盡也,何時(shí)得見(jiàn)?"];
    [text appendAttributedString: text1];
    
    // 嵌入 UIImage
    UIImage *image1 = [UIImage imageNamed:@"live_score_image"];
    NSMutableAttributedString *attachment1 = nil;
    attachment1 = [NSMutableAttributedString yy_attachmentStringWithContent:image1 contentMode:UIViewContentModeCenter attachmentSize:image.size alignToFont:font alignment:YYTextVerticalAlignmentCenter];
    [text appendAttributedString: attachment1];
    
    YYLabel *yyLabel = [[YYLabel alloc] init];
    yyLabel.attributedText = text;
    yyLabel.numberOfLines = 0;
    yyLabel.textColor = [UIColor blueColor];
    yyLabel.font = [UIFont boldSystemFontOfSize:20.0];
    yyLabel.frame = CGRectMake(0.0, 64.0, self.view.bounds.size.width, 500.0);
    [self.view addSubview:yyLabel];
}

@end

下面看輸出結(jié)果

圖文混排

二芹助、YYText布局計(jì)算

下面看YYText的圖文混排布局計(jì)算,還是先看代碼吧闲先。

#import "JJTextVC.h"
#import "YYText.h"

@interface JJTextVC ()

@end

@implementation JJTextVC

#pragma mark - Override Base Function

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor lightTextColor];
    
    self.title = @"YYText";

    //布局計(jì)算
    [self layoutCaculation];
}

#pragma mark - Object Private Function

//布局計(jì)算
- (void)layoutCaculation
{
    NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:@"舊時(shí)月色,算幾番照我,梅邊吹笛?喚起玉人,不管清寒與攀摘.何遜而今漸老,都忘卻,春風(fēng)詞筆.但怪得,竹外疏花,春冷入瑤席.江國(guó),正寂寂.嘆寄與路遙,夜雪初積.翠尊易泣,紅萼無(wú)言耿相憶.常記曾攜手處,千樹壓.梅湖寒碧,又片片吹盡也,何時(shí)得見(jiàn)? "];
    text.yy_font = [UIFont boldSystemFontOfSize:18.0];
    text.yy_color = [UIColor blueColor];

    
    CGSize size = CGSizeMake(300, CGFLOAT_MAX);
    YYTextLayout *layout = [YYTextLayout layoutWithContainerSize:size text:text];
    [layout lineIndexForPoint:CGPointMake(10,10)];
    [layout closestLineIndexForPoint:CGPointMake(10,10)];
    [layout closestPositionToPoint:CGPointMake(10,10)];
    [layout textRangeAtPoint:CGPointMake(10,10)];
    [layout rectForRange:[YYTextRange rangeWithRange:NSMakeRange(10,20)]];
    [layout selectionRectsForRange:[YYTextRange rangeWithRange:NSMakeRange(10,20)]];
    
    YYLabel *label = [[YYLabel alloc] init];
    label.textColor = [UIColor blueColor];
    label.frame = CGRectMake(0.0, 64.0, self.view.bounds.size.width, 500.0);
    label.attributedText= text;
    label.textLayout = layout;
    [self.view addSubview:label];
}
@end

下面看結(jié)果

布局計(jì)算

??我也不清楚這個(gè)例子舉的對(duì)不對(duì)状土,如果有不對(duì)的地方希望大家能批評(píng)真正,歡迎留言伺糠。

后記

??最近項(xiàng)目挺忙的蒙谓,所以能每天寫點(diǎn)已經(jīng)抽出很多時(shí)間了,難免有錯(cuò)誤训桶,不對(duì)的地方希望能給我指正出來(lái)累驮,謝謝大家。

東北雪景
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末舵揭,一起剝皮案震驚了整個(gè)濱河市谤专,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌午绳,老刑警劉巖置侍,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異箱叁,居然都是意外死亡墅垮,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門耕漱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)算色,“玉大人,你說(shuō)我怎么就攤上這事螟够≡置危” “怎么了峡钓?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)若河。 經(jīng)常有香客問(wèn)我能岩,道長(zhǎng),這世上最難降的妖魔是什么萧福? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任拉鹃,我火速辦了婚禮,結(jié)果婚禮上鲫忍,老公的妹妹穿的比我還像新娘膏燕。我一直安慰自己,他們只是感情好悟民,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布坝辫。 她就那樣靜靜地躺著,像睡著了一般射亏。 火紅的嫁衣襯著肌膚如雪近忙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天智润,我揣著相機(jī)與錄音及舍,去河邊找鬼。 笑死做鹰,一個(gè)胖子當(dāng)著我的面吹牛击纬,可吹牛的內(nèi)容都是我干的鼎姐。 我是一名探鬼主播钾麸,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼炕桨!你這毒婦竟也來(lái)了饭尝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤献宫,失蹤者是張志新(化名)和其女友劉穎钥平,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姊途,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡涉瘾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了捷兰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片立叛。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贡茅,靈堂內(nèi)的尸體忽然破棺而出秘蛇,到底是詐尸還是另有隱情其做,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布赁还,位于F島的核電站妖泄,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏艘策。R本人自食惡果不足惜蹈胡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望朋蔫。 院中可真熱鬧审残,春花似錦、人聲如沸斑举。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)富玷。三九已至璧坟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赎懦,已是汗流浹背雀鹃。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留励两,地道東北人黎茎。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像当悔,于是被迫代替她去往敵國(guó)和親傅瞻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

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

  • 版本記錄 前言 YYText是一個(gè)專門處理文字的框架盲憎,有了它處理文字變得非常方便嗅骄,這一篇我繼續(xù)介紹YYText的使...
    刀客傳奇閱讀 1,797評(píng)論 9 4
  • 版本記錄 前言 YYText是一個(gè)專門處理文字的框架,有了它處理文字變得非常方便饼疙,這一篇我繼續(xù)介紹YYText的使...
    刀客傳奇閱讀 4,223評(píng)論 0 9
  • 版本記錄 前言 YYText是一個(gè)專門處理文字的框架溺森,作者是國(guó)內(nèi)的一個(gè)技術(shù)大牛,他有很多框架窑眯,還有我們知道的YYM...
    刀客傳奇閱讀 25,169評(píng)論 4 37
  • 版本記錄 前言 YYText是一個(gè)專門處理文字的框架屏积,有了它處理文字變得非常方便,這一篇我繼續(xù)介紹YYText的使...
    刀客傳奇閱讀 1,991評(píng)論 0 2
  • 這是本月參加的第五場(chǎng)“聚餐”。兩家生娃更胖,兩家婚禮铛铁,一家白事隔显。 禮金不多,每次二百饵逐。聚餐規(guī)格湊合括眠,差不多幾百一桌。 ...
    Jane漂漂閱讀 1,031評(píng)論 9 11