我想调整某些UITextViews中的字体大小。可以与插座集合和以下代码配合使用:
for (UITextView *view in self.viewsToResize) {
if ([view respondsToSelector:@selector(setFont:)]) {
[view setFont:[UIFont systemFontOfSize:view.font.pointSize + 5]];
}
}
但是我的问题是,不是每个textView都以正常的粗细使用systemFont,其中一些是粗体的。是否可以获取字体粗细?在调试区域中使用
po view.font
,我可以看到我需要的一切:$11 = 0x0c596ea0 <UICFFont: 0xc596ea0> font-family: "Helvetica"; font-weight: normal; font-style: normal; font-size: 12px
但是,如何访问字体粗细?
将第二个插座集合用于粗体视图可以解决我的问题。但是我想知道我什么都没有得到仅字体粗细。
最佳答案
UIFont没有粗体/斜体/ ...属性,因此您将仅需依赖字体名称。
如果您不知道将使用哪种字体,这将是一个问题。
在这种情况下,您知道将使用例如。只有Helvetica,您可以尝试以下操作:
UIFont *font = textview.font;
if([font.fontName isEqualToString:@"Helvetica-Bold"])
NSLog(@"It's Bold!");
或者,您可以在font.fontName中搜索单词“bold” /“medium” /“light”等,但这不保证您会从每种可用的字体中得到好处:
if ([font.fontName rangeOfString:@"bold" options:NSCaseInsensitiveSearch].location == NSNotFound) {
NSLog(@"font is not bold");
} else {
NSLog(@"font is bold!");
}
// if font.fontName contains "medium"....
// if font.fontName contains "italic"....
检查http://iosfonts.com/以获取可用的字体名称。