年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3201|回复: 0

UIAttributedString自动换行问题

[复制链接]
  • TA的每日心情

    2024-10-15 10:05
  • 签到天数: 372 天

    [LV.9]以坛为家II

    发表于 2014-8-18 19:41:59 | 显示全部楼层 |阅读模式
    网上搜了大半天,如出一辙的结果如下:

    设置行间距和换行模式都是设置一个属性:kCTParagraphStyleAttributeName,这个属性里面又分为很多子

    属性,其中就包括

    kCTLineBreakByCharWrapping
    kCTParagraphStyleSpecifierLineSpacingAdjustment

    设置如下:

    //段落
        //line break
    CTParagraphStyleSetting lineBreakMode;
    CTLineBreakMode lineBreak = kCTLineBreakByCharWrapping; //换行模式
    lineBreakMode.spec = kCTParagraphStyleSpecifierLineBreakMode;
    lineBreakMode.value = &lineBreak;
    lineBreakMode.valueSize = sizeof(CTLineBreakMode);

        //行间距
    CTParagraphStyleSetting LineSpacing;
    CGFloat spacing = 4.0;  //指定间距
    LineSpacing.spec = kCTParagraphStyleSpecifierLineSpacingAdjustment;
    LineSpacing.value = &spacing;
    LineSpacing.valueSize = sizeof(CGFloat);

    CTParagraphStyleSetting settings[] = {lineBreakMode,LineSpacing};
    CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(settings, 2);   //第二个参数为settings的长度
    [attributedString addAttribute:(NSString *)kCTParagraphStyleAttributeName
                             value:(id)paragraphStyle
                             range:NSMakeRange(0, attributedString.length)];

    -----------------------------------------猥琐的分界线-----------------------------------------

    这并不是唯一的方法,还有另一种替代方案:
    CATextLayer *textLayer = [CATextLayer layer];
    textLayer.string = getAttributedString();
    textLayer.frame = CGRectMake(0, CGRectGetMaxY(view.frame), 200, 200);
    [self.view.layer addSublayer:textLayer];
    CATextLayer可以直接支持NSAttributedString!

    -----------------------------------------猥琐的分界线-----------------------------------------


    其实不用这么麻烦,一行代码搞定!哪怕是Button上的AttribledText,看好了别眨眼:
    button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;






    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-12-22 18:05 , Processed in 0.047061 second(s), 18 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表