我动态创建UIlabels,对于第一个使用Bold样式的标签。
my string data <br />
<p>We understand the challenges</p> <strong> that small to medium</strong> my string data my string data my string data
但它画得像这样
为什么第一个标签更大?
答案 0 :(得分:7)
对于&#34; Avenir Next&#34;家庭字体必须使用这些名称:
AvenirNext-MediumItalic, AvenirNext粗体, AvenirNext,超轻, AvenirNext-DemiBold, AvenirNext-HeavyItalic, AvenirNext重, AvenirNext介质, AvenirNext斜体, AvenirNext-UltraLightItalic, AvenirNext-BOLDITALIC, AvenirNext正规, AvenirNext-DemiBoldItalic
Avenir Next-Bold改为AvenirNext-Bold,Avenir接下来AvenirNext-Regular
答案 1 :(得分:1)
您需要更改以下代码行。
labelFont = [UIFont fontWithName:@"AvenirNextCondensed-Bold" size:9.0];
对于所有字体系列名称检查,请使用以下代码。
NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
NSArray *fontNames;
NSInteger indFamily, indFont;
for (indFamily=0; indFamily<[familyNames count]; ++indFamily)
{
NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
fontNames = [[NSArray alloc] initWithArray:
[UIFont fontNamesForFamilyName:
[familyNames objectAtIndex:indFamily]]];
for (indFont=0; indFont<[fontNames count]; ++indFont)
{
NSLog(@" Font name: %@", [fontNames objectAtIndex:indFont]);
}
}
答案 2 :(得分:0)
从它适用的字体名称中删除空格
UIFont *labelFont;
if (i == 0) {
labelFont = [UIFont fontWithName:@"AvenirNext-Bold" size:9.0];
} else {
labelFont = [UIFont fontWithName:@"AvenirNext-Regular" size:9.0];
}
label.font = labelFont;
答案 3 :(得分:0)
在当前代码中,字体不会应用于该数组中的第一个字符串。如果您尝试打印labelfont的日志,则i = 0将为nil。 如果您打印label.font的日志,您可以看到以下输出
(lldb) po label.font
<UICTFont: 0x7fbbb36185a0> font-family: ".SFUIText-Regular"; font-weight: normal; font-style: normal; font-size: 17.00pt
要使粗体字体正常工作,请尝试以下方法,
labelFont = [UIFont fontWithName:@"AvenirNext-Bold" size:9.0];
希望这会有所帮助。