首页 > 代码库 > 关于UILabel设置AttributedString以后末尾...不出现的问题
关于UILabel设置AttributedString以后末尾...不出现的问题
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了
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。