前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS lable多行取每行字符串

iOS lable多行取每行字符串

作者头像
菜菜不吃蔡
发布2018-08-03 16:44:12
1.1K0
发布2018-08-03 16:44:12
举报
文章被收录于专栏:编程语言编程语言编程语言

最近项目需要从lable的中去每行添加换行符,在网上找了一些资料,总结了一下怎么处理这个问题。

+(NSString*)getStrfromMorelineby:(UILabel*)lable withfont:(UIFont*)font withdic:(NSDictionary*)dic withstr:(NSString*)str{

CTFontRef myFont = CTFontCreateWithName((__bridge CFStringRef)([font fontName]), [font pointSize], NULL);

NSDictionary *attributes = @{(NSString *)kCTParagraphStyleAttributeName:[dic valueForKey:NSParagraphStyleAttributeName],(NSString *)kCTFontAttributeName:(__bridge id)myFont,(NSString*)kCTKernAttributeName:[dic valueForKey:NSKernAttributeName]};

NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:str];

    [attStr addAttributes:attributes range:NSMakeRange(0, attStr.length)];

CTFramesetterRef frameSetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)attStr);

CGMutablePathRef path = CGPathCreateMutable();

CGPathAddRect(path, NULL, CGRectMake(0,0,lable.frame.size.width,100000));

CTFrameRef frame = CTFramesetterCreateFrame(frameSetter, CFRangeMake(0, 0), path, NULL);

NSArray *lines = (__bridge NSArray *)CTFrameGetLines(frame);

NSMutableArray *linesArray = [[NSMutableArray alloc]init];

NSString * mutablestr = @"";

for (id line in lines)

    {

CTLineRef lineRef = (__bridge CTLineRef )line;

CFRange lineRange = CTLineGetStringRange(lineRef);

NSRange range = NSMakeRange(lineRange.location, lineRange.length);

NSString *lineString = [str substringWithRange:range];

        mutablestr =  [mutablestr stringByAppendingString:lineString];

if (![lineString containsString:@"\n"]) {

            mutablestr=[mutablestr stringByAppendingString:@"\n"];

        }

        [linesArray addObject:lineString];

    }

return mutablestr;

}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年07月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档