我正在尝试减少字符串部分的大小,并使用下面的代码。我的输出不正确。我只看到我的第一个字体属性用于整个字符串,而不是指定的范围。
NSMutableAttributedString *attString=[[NSMutableAttributedString alloc] initWithString:title];
NSInteger _stringLength=[descriptionText length];
[attString addAttribute:NSFontAttributeName
value:[UIFont fontWithName:@"Gotham-Bold" size:20.0]
range:NSMakeRange(0, 10)];
[attString addAttribute:NSFontAttributeName
value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0]
range:NSMakeRange(11, _stringLength-1)];
[self.description setAttributedText:attString];
答案 0 :(得分:6)
我也遇到过这个问题。对于第二种字体选择,您需要将字符串长度的减号设置为与它开始的位置相同。
[attString addAttribute:NSFontAttributeName
value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0]
range:NSMakeRange(11, _stringLength-11)];
而不是:
[attString addAttribute:NSFontAttributeName
value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0]
range:NSMakeRange(11, _stringLength-1)];
答案 1 :(得分:1)
我的2美分;)Swift 3
func attributedTexts(text1: String, attribs1: [String : Any]?, text2: String, attribs2: [String : Any]?) {
let str = NSMutableAttributedString(string: text1, attributes: attribs1);
str.append(NSAttributedString(string: text2, attributes: attribs2))
return str
}
<强>用法:强>
let attr1 = [NSFontAttributeName: UIFont.boldSystemFont(ofSize: 24)]
let attr2 = [NSFontAttributeName: UIFont.systemFont(ofSize: 16)]
let attributedString = self.attributedTexts(text1: "First Text", attribs1: attr1, text2: "\nSecond Text", attribs2: attr2)
答案 2 :(得分:0)
请看一下这个网站和视频,你可能会得到一些有用的东西
答案 3 :(得分:0)
您的代码没有任何问题。可能您正在尝试使用不存在的字体名称。您是否检查过字体确实存在,例如通过po或NSLog?
如果您记录了attributionString,那么输出是什么?