只更改字体大小(而不是字体名称)

时间:2013-09-28 18:39:15

标签: objective-c fonts uifont system-font

我想要做的是改变字体大小。

我知道下面的语句会更改字体大小,但它会更改字体名称,因为我们使用systemFontOfSize

[UIFont systemFontOfSize: 13.0];

我知道备选方案如下所述。

[myLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]];

但我不想使用fontWithName,因为我在IB中设置了它。

我不想使用字体名称,因为我的应用程序是多语言的,因此我不想使用字体名称。

我知道如何更改fontsize并且不要更改fontname。

1 个答案:

答案 0 :(得分:3)

UIFont的字体度量属性是只读的太糟糕了。如果可以动态调整它们,而不必在下面执行此操作,那就太好了:

UIFont * fontFromLabel = myLabel.font;

// now we have the font from the label, let's make a new font
// with the same font name but a different size
if(fontFromLabel)
{
    // 13, or whatever size you want
    UIFont * newFontForLabel = [UIFont fontWithName: fontFromLabel.fontName size: 13.0f]; 
    if(newFontForLabel)
    {
        [myLabel setFont: newFontForLabel];
    }
}