獲取UILabel每一行的文字內(nèi)容

獲取UILabel每一行的文字內(nèi)容

需要引入CoreText框架

#import <CoreText/CoreText.h>

具體實(shí)現(xiàn)如下,返回一個(gè)數(shù)組,存放每一行的問題本內(nèi)容,根據(jù)Label的尺寸獲取

- (NSArray *)getSeparatedLinesFromLabel:(UILabel *)label {
    NSString *text = [label text];
    UIFont   *font = [label font];
    CGRect    rect = [label bounds];
    
    CTFontRef myFont = CTFontCreateWithName((__bridge CFStringRef)([font fontName]), [font pointSize], NULL);
    NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:text];
    [attStr addAttribute:(NSString *)kCTFontAttributeName value:(__bridge id)myFont range:NSMakeRange(0, attStr.length)];
    
    CTFramesetterRef frameSetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)attStr);
    
    CGMutablePathRef path = CGPathCreateMutable();
    CGPathAddRect(path, NULL, CGRectMake(0,0,rect.size.width,MAXFLOAT));
    
    CTFrameRef frame = CTFramesetterCreateFrame(frameSetter, CFRangeMake(0, 0), path, NULL);
    
    NSArray *lines = (__bridge NSArray *)CTFrameGetLines(frame);
    NSMutableArray *linesArray = [[NSMutableArray alloc]init];
    
    for (id line in lines)
    {
        CTLineRef lineRef = (__bridge CTLineRef )line;
        CFRange lineRange = CTLineGetStringRange(lineRef);
        NSRange range = NSMakeRange(lineRange.location, lineRange.length);
        
        NSString *lineString = [text substringWithRange:range];
        [linesArray addObject:lineString];
    }
    return (NSArray *)linesArray;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,200評(píng)論 4 61
  • package com.selenium.gen; import java.io.File; import jav...
    紅木杉2018閱讀 417評(píng)論 0 0
  • 小時(shí)候,總愛問父親:為什么杭州的天不黑啊?他說(shuō)那是因?yàn)橛袩簟S袩簦繉?duì)的,因?yàn)橛袩簟?那時(shí)的我并不明白,為什么杭州的...
    落果果閱讀 260評(píng)論 0 1
  • 當(dāng)空烈日鋤耕耘,白云悠悠拔拔草。作物有這草長(zhǎng)得快多好[捂臉]
    一路凱歌1閱讀 315評(píng)論 2 1
  • 梧桐深巷鎖軒窗, 枯藤陌上凝冷霜。 小童戲水池邊上, 忽聞清秋桂子香。 (配圖是自己拍的,不符詩(shī)意)
    Gordo閱讀 238評(píng)論 0 2