UILabel的两段对齐

UILabel的两段对齐

主要代码如下:

- (void)labelJustingAlignment {
    NSMutableAttributedString *mAttributeStr = [[NSMutableAttributedString alloc] initWithString:self.label.text];

    NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    paragraphStyle.alignment = NSTextAlignmentJustified;
    paragraphStyle.paragraphSpacing = 10;// 段与段之间的距离,相当于table的sectionHeadHeight
    paragraphStyle.paragraphSpacingBefore = 5; // 段落前,与上一段落的距离,相当于table的headheight
    paragraphStyle.firstLineHeadIndent = 20;  // 每个段落的首行缩进
    paragraphStyle.headIndent = 35; // 段落中除了首行以外的行的缩进

    NSDictionary *attribute = @{
                                NSForegroundColorAttributeName : [UIColor blueColor],
                                NSFontAttributeName            : [UIFont systemFontOfSize:18],
                                NSParagraphStyleAttributeName  : paragraphStyle,
                                //NSUnderlineStyleAttributeName  : @(NSUnderlineStyleNone)
                                };
    [mAttributeStr setAttributes:attribute range:NSMakeRange(0, mAttributeStr.length)];
    NSAttributedString *attributeStr = [mAttributeStr copy];
    self.label.attributedText = attributeStr;
} 
  • 需要解释一下,这里的代码只能针对有多行的情况,并不适用于只有一行且不足以填充满Label一行的情况,这一点和Word文本编辑是一个道理,两段对齐仅对一些特殊的字符集合(比如中文中夹杂英文单词),在同一行显示下了时,对中文字符进行字符间间隙调整,将英文单词换行处理,处理后中文达到两段对齐的效果;
  • 这里主要是把paragraphStyle的参数进行记录并分享;
  • 在代码里有比较详情的注释,路过的朋友可以参考;
  • 另外我是在iOS8.1及iOS9上进行测试,iOS7的机子��;
  • 这篇文章的写作想法来源是简书上的一片文章,文章作者没有进行更新、参数也没有进行详细说明,属性attributedText功能探索之两端对齐1

最后截图
两段对齐效果


  1. 属性attributedText功能探索之两端对齐: http://www.jianshu.com/p/38a6fd46fb9c
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值