UILabel两边对齐的实现(NSAttributedString)

标签(空格分隔): ios UILabel


最近有需求要让UILabel 实现两边的对齐,我们知道UIlabel默认左对齐,有居中,右对齐可选,但是就是没有两边对齐,还好UILabelios6出来之后多了个attributedText

@property(nullable, nonatomic,copy)  NSAttributedString *attributedText NS_AVAILABLE_IOS(6_0);  

这个属性的增加使得UILabel具有类似富文本的功能,可显示的效果变得更加丰富。

话不多说,直接上代码:

- (NSMutableAttributedString*)getAttr:(NSString*)str {

    NSMutableParagraphStyle   *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
    [paragraphStyle setLineSpacing:5.5];//行间距
    paragraphStyle.alignment = NSTextAlignmentJustified;//文本对齐方式 左右对齐(两边对齐)
        
    NSMutableAttributedString * attributedString = [[NSMutableAttributedString alloc] initWithString:str];
    
    [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [str length])];//设置段落样式
    
    [attributedString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:13.0] range:NSMakeRange(0, [str length])];//设置字体大小
    
    [attributedString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleNone] range:NSMakeRange(0, [str length])];//这段话必须要添加,否则UIlabel两边对齐无效 NSUnderlineStyleAttributeName (设置下划线)
    
    return attributedString;
    
}

使用下看下运行效果:

(未对齐前)


UILabel两边对齐的实现(NSAttributedString)_第1张图片
0C372A1C-78C1-400F-9098-FE20867DBADC.png

(两边对齐后)


UILabel两边对齐的实现(NSAttributedString)_第2张图片
C0BC2244-0ACD-48CE-BD6D-09E95C1214A5.png

是不是效果立刻显现 (下一篇我们将去了解下 UILabel里面的属性)

你可能感兴趣的:(UILabel两边对齐的实现(NSAttributedString))