iOS - UITableViewCell使文本变为粗体

Van*_*ssa 5 xcode uitableview ios xcode5

我有一个字符串:

NSString *userInfo = @"James Johnson @james";
Run Code Online (Sandbox Code Playgroud)

我想做的是粗体James Johnson并保持@james正常的字体.

所以我试过的是在NSAttributedString某个地方使用我做错了什么来完成这个过程.

这是我尝试过的:

NSString *user = @"James Johnson @james";

UIFont *fontLight = [UIFont fontWithName:@"HelveticaNeue-Light" size:14];
UIFont *fontBold = [UIFont fontWithName:@"HelveticaNeue-Bold" size:14];

NSMutableAttributedString *string = [[NSMutableAttributedString alloc]initWithString:userInfo];

//TESTING WITH RANDOM PARTS OF THE STRIN
[string addAttribute:NSForegroundColorAttributeName value:fontLight range:NSMakeRange(0, 3)];
[string addAttribute:NSForegroundColorAttributeName value:fontBold range:NSMakeRange(3, 5)]; 

NSString *str = [string string];

cell.textLabel.text = str;
Run Code Online (Sandbox Code Playgroud)

即使我走错方向,有没有办法让这项工作成功?

什么不起作用

由于某种原因,范围0 - 3中的字符不是轻字体...而是整个cell.textLabel.text以某种方式加粗,而不是我在UIFont中指定的字体大小14.

Flo*_*lke 6

你的最后一部分是错的.您必须使用创建NSAttributedString并最终废弃格式

NSString *str = [string string];
Run Code Online (Sandbox Code Playgroud)

由于NSString对格式化一无所知,您必须使用NSAttributedString它将其分配给单元格textLabel:

cell.textLabel.attributedText = string;
Run Code Online (Sandbox Code Playgroud)

  • 这是因为您设置的颜色而不是字体.所以请用`NSFontAttributeName`替换`NSForegroundColorAttributeName`. (2认同)