UIButton.titlelabel setfont不起作用

时间:2013-08-29 08:15:57

标签: iphone ios

我在界面构建器中添加了按钮并引用了它们,然后我想更改它们的标题字体,但它确实有效。 当我使用时:

[_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部分“应用程序提供的字体”。

3 个答案:

答案 0 :(得分:2)

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

[[UIButton appearance] setFont:[UIFont fontWithName:APP_FONT_FUTURASTD_BOLD size:12.0f]];
CSAppDelegate.m中的

因此我的所有自定义都被覆盖了。

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

修改

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

修改

现在此代码已弃用,因此您必须使用此代码:

[[[UIButton appearance] titleLabel] setFont:UIFont];

答案 1 :(得分:1)

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

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

  // List all fonts on iPhone

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

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

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

答案 2 :(得分:-5)

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