2014-09-26 4 views
16

Я пытался изменить шрифт для элементов панели табуляции, однако мне не удалось найти какие-либо примеры Swift. Я знаю, что так вы меняете его в Objective-C:Изменение шрифта панели вкладок в Swift

[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"AmericanTypewriter" size:20.0f], UITextAttributeFont, nil] forState:UIControlStateNormal]; 

Но как я могу перевести это в Swift?

ответ

37

UITextAttributeFont осуждались в прошивке 7. Вы должны использовать вариант NS вместо:

import UIKit 

let appearance = UITabBarItem.appearance() 
let attributes = [NSFontAttributeName:UIFont(name: "American Typewriter", size: 20)] 
appearance.setTitleTextAttributes(attributes, forState: .Normal) 
+0

Спасибо за ответ, но это не похоже, чтобы изменить что-нибудь ... – user3746428

+0

Nevermind, я поставил код в awakeFromNib и который зафиксировал это. Большое спасибо! – user3746428

+0

Примечание: использование игровой площадки - отличный способ найти эту вещь. Вы также можете посмотреть http://swifter.natecook.com, чтобы узнать некоторые из названий. – AlBlue

15

Вот Swift 3.0 решение

UITabBarItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "Font-Name", size: 10)!], for: .normal) 
UITabBarItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "Font-Name", size: 10)!], for: .selected) 
+3

Это не меняет шрифт для меня для состояния '.selected'. – AbbasAngouti

+0

@AbbasAngouti - вам просто нужно продублировать код и изменить' .normal' на '.selected' –

2

В дополнении @ ответ Mc.Lover «s, если хотите добавить это изменение ко всей вашей панели вкладок. Элементы в приложении, я рекомендую добавить код в application функция класса AppDelegate:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 

    //Just add this line to get it done.  
    UITabBarItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name: "IranSansMobile", size: 15)!], for: UIControlState.normal) 

    return true 
} 
3

Надень под didFinishLaunchingWithOptions:

UITabBarItem.appearance() 
    .setTitleTextAttributes(
     [NSAttributedStringKey.font: UIFont(name: "Didot", size: 10)!], 
    for: .normal) 

Это работает в Swift 4

Смежные вопросы