NSAttributedString - 获取字体属性

ada*_*dam 11 objective-c core-text ios

我需要获取有关我的属性字符串的信息,但无法弄清楚如何.我收到这本词典:

2013-11-04 18:06:10.628 App[1895:60b] {
    NSColor = "UIDeviceWhiteColorSpace 0.3 1";
    NSFont = "<UICTFont: 0x17d8d4c0> font-family: \".HelveticaNeueInterface-MediumP4\"; font-weight: bold; font-style: normal; font-size: 17.00pt";
    NSUnderline = 0;
}
Run Code Online (Sandbox Code Playgroud)

通过以下方式检查下划线很容易:

[attrs objectForKey:@"NSUnderline"]
Run Code Online (Sandbox Code Playgroud)

但是如何获取有关字体的信息,如字体样式,字体重量等.

谢谢你的帮助

rma*_*ddy 15

你得到的字体来自:

UIFont *font = attrs[NSFontAttributeName];
Run Code Online (Sandbox Code Playgroud)

问题在于确定它是否是粗体.没有财产.唯一的选择是查看fontName字体,看看是否包含"Bold"或其他类似术语.并非所有粗体字体在名称中都有"粗体".

同样的问题适用于确定字体是斜体还是注释.您必须查看fontName并查找"Italic"或"Oblique"等内容.

  • 好的,但是如果你只支持iOS 7(或更高版本),那么使用`UIFontDescriptor`会更容易,也更可靠.我不知道iOS 7中的这个新功能. (2认同)