ios 多個(gè)垂直顯示的UILabel文字兩端對(duì)齊

多行垂直顯示的UILabel文字兩端對(duì)齊

在開發(fā)中我們會(huì)遇到這樣的UI,需要我們對(duì)齊字?jǐn)?shù)不同的標(biāo)題:

對(duì)齊.jpg

我的思路是需要知道:

·當(dāng)前l(fā)abel與最長(zhǎng)lable文字之間的文字?jǐn)?shù)量差num
·然后計(jì)算出差一個(gè)字的差距值singleValue
·通過(guò)設(shè)置label的attributedText來(lái)填充當(dāng)前l(fā)abel與最長(zhǎng)label的總差距

1.計(jì)算出差一個(gè)字的差距值singleValue

#import "CoreText/CoreText.h"
CGFloat singleValue = [@"好" boundingRectWithSize:CGSizeMake(MAXFLOAT, XXAutoLayout(15)) 
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine |NSStringDrawingUsesFontLeading 
attributes:@{NSFontAttributeName : label.font} context:nil].size.width;

2.根據(jù)label的長(zhǎng)度來(lái)填充差值,

  ·如上圖最長(zhǎng)lable字?jǐn)?shù)為5(算上冒號(hào))
如果差一個(gè)漢子:
    1.因?yàn)榈谝粋€(gè)字和最后兩個(gè)字需要對(duì)齊算上冒號(hào))
      ·所以需要把差值插入到第一個(gè)字與第二個(gè)字、第二個(gè)字與第三個(gè)字之間
      ·那么差一個(gè)字總長(zhǎng)度為singleValue * 1,差值插入的位置數(shù)量為2,所以得到代碼:
        #import "CoreText/CoreText.h"
        NSNumber *number = [NSNumber numberWithFloat:self.onelength / 2];
        NSMutableAttributedString *astr = [[NSMutableAttributedString alloc] initWithString:label.text];
       // 表示把number插入到第一個(gè)字與第二個(gè)字、第二個(gè)字與第三個(gè)字之間
       [astr addAttribute:(id)kCTKernAttributeName value:number range:NSMakeRange(0, 2)];
       label.attributedText = astr;
如果差2個(gè)漢子:
    2.因?yàn)榈谝粋€(gè)字和最后兩個(gè)字需要對(duì)齊算上冒號(hào))
      ·所以需要把差值插入到第一個(gè)字與第二個(gè)字之間
      ·那么差2個(gè)字總長(zhǎng)度為singleValue * 2,差值插入的位置數(shù)量為1,所以得到代碼:
        NSNumber *number = [NSNumber numberWithFloat: singleValue * 2];
        NSMutableAttributedString *astr = [[NSMutableAttributedString alloc] initWithString:label.text];
       // 表示把number插入到第一個(gè)字與第二個(gè)字之間
       [astr addAttribute:(id)kCTKernAttributeName value:number range:NSMakeRange(0, 1)];
       label.attributedText = astr;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容