我使用NSMutableAttributedString
和NSAttributedString
以两种不同的字体大小显示标签文本。我的方法是:
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"days" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
返回一个字体大小为12的"2“和字体大小为8的”day“的属性字符串。
然而,另一个场景是在2之后添加一个换行符。我使用以下代码:
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"\ndays" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
此时间属性字符串将该属性应用于全文。我得到一个字体大小为8的带有“2\nday”的属性字符串。
发布于 2014-03-27 16:17:44
试试下面的代码,它工作得很好:
NSMutableAttributedString *muAtrStr = [[NSMutableAttributedString alloc]initWithString:@"2"];
NSAttributedString *atrStr = [[NSAttributedString alloc]initWithString:@"\ndays" attributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:8]}];
[muAtrStr appendAttributedString:atrStr];
self.lbl.numberOfLines = 0;
[self.lbl setAttributedText:muAtrStr];
注意:-还要将numberOfLines设置为0,以允许任意数量的行
发布于 2017-01-11 22:42:06
这在Swift中有效:
let attributedText = NSAttributedString(string: "Happy \nDays")
label.numberOfLines = 0
label.lineBreakMode = .byWordWrapping
label.attributedText = attributedText
https://stackoverflow.com/questions/22681008
复制相似问题