码迷,mamicode.com
首页 > 其他好文 > 详细

关于UILabel设置AttributedString以后末尾...不出现的问题

时间:2014-08-02 18:07:53      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   io   问题   cti   ar   

UILabel我们都知道在内容盛不下的时候末尾就会显示...

但是当你给UILabel设置AttributedString的时候就会发现,虽然内容盛不下,但是最后的...也是没有的

这可能是AttributedString设置以后UILabel原本的设置就不生效了(包括字体,字体颜色等属性)

如果你想要显示...如要手动再给UILabel设置截断模式

NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:@"伦敦的地标建筑之一是一条横跨泰晤士河的大桥,于1984年通车.桥的升降过去采用蒸汽机结构.桥的打开为了让高的船通过的景象wgqrgqwrfrgqwe"];
    
    NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init];
    label.numberOfLines = 0;
    //paragraph.lineSpacing = 20;
    //paragraph.paragraphSpacing = 20;
    NSDictionary *attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:17.0f],NSParagraphStyleAttributeName:paragraph};
    [string addAttributes:attributes range:NSMakeRange(0, string.length)];
    [label setAttributedText:string];
    label.lineBreakMode = NSLineBreakByTruncatingTail;

在设置完AttributedText之后设置lineBreakMode才会生效,如果你在后续的代码中重新设置了AttributedText,那你需要重新设置lineBreakMode,否则Label的lineBreakMode会被覆盖掉,不出现...

 

如果你嫌上面的方法麻烦,还有一种解决方式就是使用

NSMutableParagraphStyle里面也有一个lineBreakMode也可以设置截断模式,这个是直接添加在AttributedString里面的,所以不需要设置UILabel的lineBreakMode了

关于UILabel设置AttributedString以后末尾...不出现的问题,布布扣,bubuko.com

关于UILabel设置AttributedString以后末尾...不出现的问题

标签:style   blog   color   使用   io   问题   cti   ar   

原文地址:http://www.cnblogs.com/xyzaijing/p/3887103.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!