簡體   English   中英

導航欄標題字體大小

[英]Navigation Bar Title Font Size

我需要為iPhone應用程序中的一個視圖控制器更改導航欄標題文本的大小。 我正在使用iOS5,並嘗試了以下代碼:

if ([self.tabBarItem respondsToSelector:@selector(setTitleTextAttributes:)]) {
    NSLog(@"*** Support method(iOS 5): setTitleTextAttributes:");
    [self.tabBarItem setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                [UIFont fontWithName:@"AmericanTypewriter" size:20.0f], UITextAttributeFont,
                                                [UIColor blackColor], UITextAttributeTextColor,
                                                [UIColor grayColor], UITextAttributeTextShadowColor,
                                                [NSValue valueWithUIOffset:UIOffsetMake(0.0f, 1.0f)], UITextAttributeTextShadowOffset,
                                                nil]];
}

但是,這僅適用於tabBarItem。

您已經知道了,但是也可以使用以下屬性方法。

對於顏色,

NSDictionary *attributes=[NSDictionary dictionaryWithObjectsAndKeys:[UIColor RedColor],UITextAttributeTextColor, nil];

self.navigationController.navigationBar.titleTextAttributes = attributes;

對於尺寸,

NSDictionary *size = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial" size:17.0],UITextAttributeFont, nil];

self.navigationController.navigationBar.titleTextAttributes = size;

謝謝。

對於iOS 7及更高版本

對於尺寸:

NSDictionary *size = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Arial" size:17.0],NSFontAttributeName, nil];

self.navigationController.navigationBar.titleTextAttributes = size;

您需要獲取導航欄屬性,並使用@property(nonatomic, copy) NSDictionary *titleTextAttributes

有關更多信息,請參見UINavigationBar類參考自定義UINavigationBar部分

為了更好地理解您的問題:您擁有哪種類型的控制器?

編輯

[self.navigationController.navigationBar setTitleTextAttributes:...];

如果您在推送的控制器中訪問navigationController

[navigationController.navigationBar setTitleTextAttributes:...];

如果navigationController是您當前的UINavigationController 例如,如果您具有以下代碼,則可以使用它:

UINavigationController* navigationController = ...;
[navigationController.navigationBar setTitleTextAttributes:...];

從iOS7開始,我一直喜歡以下內容:

[[UINavigationBar appearance] setTitleTextAttributes:
    [NSDictionary dictionaryWithObjectsAndKeys:
        [UIFont fontWithName:@"Helvetica-Bold" size:18.0],NSFontAttributeName,
        nil]];

從iOS7開始,已按下關鍵字UITextAttributeFont ,您應該將其替換為NSFontAttributeName

您可以使用[self.navigationController.navigationBar setTitleTextAttributes:]來設置某人navigationController的外觀,而[UINavigationBar appearance] setTitleTextAttributes:]可以直接用於整個應用程序。(當然,您需要將其放置在屬性位置。)

Swift 2.0:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        UINavigationBar.appearance().titleTextAttributes = [
            NSFontAttributeName: UIFont(name: "DINNextLTW04-Regular", size: 20)!
        ]

        return true
    }

要么

 override func viewDidLoad() {
  super.viewDidLoad()

  self.navigationController?.navigationBarHidden =  false
  self.title = "SAMPLE"

//Set Color
  let attributes: AnyObject = [ NSForegroundColorAttributeName: UIColor.redColor()]
  self.navigationController!.navigationBar.titleTextAttributes = attributes as? [String : AnyObject]


//Set Font Size
  self.navigationController!.navigationBar.titleTextAttributes = [NSFontAttributeName: UIFont(name: "Arial", size: 37.0)!];

 }

我的例子

guard let sansLightFont = UIFont(name: "OpenSans", size: 20) else { return }
navigationController?.navigationBar.titleTextAttributes = [NSFontAttributeName : sansLightFont]

暫無
暫無

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

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