簡體   English   中英

UIButton.titlelabel setfont不起作用

[英]UIButton.titlelabel setfont doesn't work

我在界面生成器中添加了按鈕並引用了它們,然后我想更改其標題字體,但是它不起作用。 當我使用時:

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

我發現了問題所在。 啟動該項目的其他程序員已經設置

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

在CSAppDelegate.m中,因此我的所有自定義設置都被此覆蓋。

因此,對於像這樣全局配置按鈕字體的任何人,您將無法以其他方式自定義某些按鈕的字體。 第二個建議是,如果您在別人之后繼續工作,請確保他們給您一些技術文檔,或者向您解釋他們的工作方式和方式。

編輯

但是,您可以在viewWillAppear中為一個視圖設置外觀,然后將其設置回該視圖的viewDidAppear中CSAppDelegate.m中的外觀。

編輯

現在此代碼已折舊,因此您必須改用以下代碼:

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

在我看來,問題在於字體名稱。 您在代碼中使用的字體名稱不是確切的名稱。

您可以使用以下代碼獲取應用支持的所有字體名稱的列表

  // List all fonts on iPhone

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

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

從xcode的控制台中,您可以找到在應用程序中添加的字體的確切名稱。

如果您與Xib一起使用,請刪除自動版式復選標記,它將正常工作。 我認為它對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM