亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

情節提要中的自定義字體?

情節提要中的自定義字體?

iOS
千萬里不及你 2019-12-10 09:36:44
我在我的iOS項目中添加了一種字體。它在項目中,并在項目構建時復制。它似乎是有效的字體,如果我通過該應用列出設備上的所有字體,它將顯示出來。我已經正確設置了plist以包含字體。我似乎找不到在Xcode 4.2的故事板部分的文本控件,按鈕等中使用它的發現。此外,它似乎不允許我輸入字體名稱,它迫使我使用字體對話框。我也嘗試在系統中安裝此字體,但似乎無法使其顯示在此列表中。我是否只需要用代碼執行此操作,還是可以通過情節提要界面執行此操作?請注意,我可以在代碼中使用它,但是通過情節提要進行此操作會更加方便。
查看完整描述

3 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

更新:Xcode 6 Interface Builder現在允許您選擇自定義字體,并將在設計時正確呈現它們。

我知道這個問題已經很久了,但是我一直在努力尋找一種簡單的方法來輕松為iOS 5在Storyboard(或Interface Builder)中指定自定義字體,因此我找到了一個非常方便的解決方案。


首先,請按照本教程的說明,將字體添加到項目中。還請記住,可以使用UIAppearance代理的setTitleTextAttributes:方法來指定UINavigationBar,UITabBar和UISegmentedControl自定義字體。


將以下類別添加到項目中,用于UIButton,UITextField,UILabel和任何其他需要自定義字體的組件。這些類別僅實現了一個新屬性fontName,該屬性可以更改元素的當前字體,同時保持字體大小。


要指定在故事板的字體,只需選擇所需的元素(標簽,按鈕,TextView的,等等),并添加一個用戶自定義運行屬性與關鍵路徑設置為的fontName類型的字符串和值與您的自定義字體的名稱。


自定義字體故事板


就是這樣,您甚至不需要導入類別。這樣,您不需要為每個需要自定義字體的UI組件都提供一個插座,也不需要手動對其進行編碼。


考慮到該字體不會在Storyboard中顯示,但是在設備或模擬器上運行時會看到該字體。


分類文件

UIButton + TCCustomFont.h:


#import <UIKit/UIKit.h>


@interface UIButton (TCCustomFont)

@property (nonatomic, copy) NSString* fontName;

@end

UIButton + TCCustomFont.m:


#import "UIButton+TCCustomFont.h"


@implementation UIButton (TCCustomFont)


- (NSString *)fontName {

    return self.titleLabel.font.fontName;

}


- (void)setFontName:(NSString *)fontName {

    self.titleLabel.font = [UIFont fontWithName:fontName size:self.titleLabel.font.pointSize];

}


@end

UILabel + TCCustomFont.h:


#import <UIKit/UIKit.h>


@interface UILabel (TCCustomFont)

@property (nonatomic, copy) NSString* fontName;

@end

UILabel + TCCustomFont.m:


#import "UILabel+TCCustomFont.h"


@implementation UILabel (TCCustomFont)


- (NSString *)fontName {

    return self.font.fontName;

}


- (void)setFontName:(NSString *)fontName {

    self.font = [UIFont fontWithName:fontName size:self.font.pointSize];

}


@end

UITextField + TCCustomFont.h:


#import <UIKit/UIKit.h>


@interface UITextField (TCCustomFont)

@property (nonatomic, copy) NSString* fontName;

@end

UITextField + TCCustomFont.m:


#import "UITextField+TCCustomFont.h"


@implementation UITextField (TCCustomFont)


- (NSString *)fontName {

    return self.font.fontName;

}


- (void)setFontName:(NSString *)fontName {

    self.font = [UIFont fontWithName:fontName size:self.font.pointSize];

}


@end

也可以從GIST下載,也可以作為一個文件下載。


故障排除

如果由于fontName未指定屬性而遇到運行時錯誤,只需在項目設置中的“ 其他鏈接器標志” -all_load下添加標志,以強制鏈接器包括類別。


查看完整回答
反對 回復 2019-12-10
?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

從Xcode6.0開始,作為Xcode6.0發行說明:


Interface Builder會在設計期間渲染嵌入式自定義iOS字體,從而以正確的尺寸更準確地預覽成品應用的外觀。


您可以在情節提要中設置標簽字體。您可以執行以下操作


獲取自定義字體文件(.ttf, .ttc)

將字體文件導入Xcode項目


在app-info.plist中,添加一個由應用程序提供的名為Fonts的鍵。它是一個數組類型,將所有字體文件名添加到數組中,注意:包括文件擴展名。


在情節提要中,將UILabel拖到您的界面上,選擇標簽,然后導航到“ 屬性”檢查器,單擊“ 字體”選擇區域的右鍵圖標按鈕。在彈出面板中,選擇“ 字體到自定義”,然后選擇要嵌入的“ 族 ”字體名稱。


查看完整回答
反對 回復 2019-12-10
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

從XCode 9.4開始,XCode仍不直接在情節提要中尊重字體。您可以在設計時看到它們,但不能在運行時看到它們。如果使用fontWithName API,您將知道它返回nil,但是在情節提要/ xib中使用時,無法知道為什么它不出現。

  • 確保它在運行時可以從Storyboard / XIB輕松運行的唯一方法是將.ttc / .ttf添加到Copy Bundle ResourcesBuild Phase中。

  • 從9.4開始,將字體文件名添加到info.plist似乎不再是必需的。


查看完整回答
反對 回復 2019-12-10
  • 3 回答
  • 0 關注
  • 584 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號