1

我在界面生成器中添加了按钮并引用了它们,然后我想更改它们的标题字体,但它不起作用。当我使用:

[_button setFont:[UIFont fontWithName:APP_FONT_FUTURASTD_LIGHT size:24.0f]];

它可以工作,但是此代码已折旧。所以我在网上查看了使用什么来代替这段代码,我发现这段代码可以使用:

[_button.titleLabel setFont:[UIFont fontWithName:APP_FONT_FUTURASTD_LIGHT size:24.0f]];
_button.titleLabel.font = [UIFont fontWithName:APP_FONT_FUTURASTD_LIGHT size:24.0f];

但这项工作都没有。我不知道该怎么办或有什么问题。我试图设置 UIButton 的全局外观,这也可以,但我不能使用它,因为我只需要在某些按钮上使用该字体。

按钮如下:

@property (nonatomic, weak) IBOutlet UIButton *button;

并添加到情节提要中。

字体定义:

#define APP_FONT_FUTURASTD_LIGHT @"FuturaStd-Light"

并添加到 Info.plist 部分“应用程序提供的字体”。

4

3 回答 3

3

我发现了问题所在。启动此项目的其他程序员已设置

[[UIButton appearance] setFont:[UIFont fontWithName:APP_FONT_FUTURASTD_BOLD size:12.0f]];

在 CSAppDelegate.m 中,所以我所有的自定义都被这个覆盖了。

因此,对于像这样全局配置按钮字体的任何人,您将无法以不同方式自定义某些按钮的字体。第二个建议是,如果您在其他人之后继续工作,请确保他们给您一些技术文档或向您解释他们是如何以及在哪里做的。

编辑

但是,您可以在 viewWillAppear 中为一个视图设置外观,然后在视图的 viewDidAppear 中将其设置回您在 ​​CSAppDelegate.m 中的外观。

编辑

现在此代码已贬值,因此您必须改用它:

[[[UIButton appearance] titleLabel] setFont:UIFont];
于 2013-09-06T10:58:22.760 回答
1

在我看来,问题是字体名称。您在代码中使用的字体名称不是确切的名称。

您可以使用以下代码获取您的应用支持的所有字体名称列表

  // List all fonts on iPhone

for (NSString* family in [UIFont familyNames])
{
    NSLog(@"%@", family);

    for (NSString* name in [UIFont fontNamesForFamilyName: family])
    {
        NSLog(@"  %@", name);
    }
}

从 xcode 的控制台中,您可以找到您在应用程序中添加的字体的确切名称

于 2013-09-06T11:44:11.097 回答
-5

如果您与 Xib 一起使用,请删除AutoLayout 复选标记。它将正常工作。我认为它对你有帮助。

于 2013-08-29T08:36:44.023 回答