Как использовать пользовательский шрифт на панели вкладок iOS
Я использую шрифт удивительный ресурс для пользовательского интерфейса моего приложения iPhone:
FontAwesome
Я использовал его в своих экранах приложений, например:
Phone.font = [UIFont fontWithName:kFontAwesomeFamilyName size:40];
Phone.text = [NSString fontAwesomeIconStringForIconIdentifier:@"fa-phone"];
Но теперь я хочу использовать его в элементах панели вкладок моего контроллера панели вкладок. i. Я хочу, чтобы значки панели вкладок отображали удивительные элементы шрифта. Как это можно сделать?
Ответы
Ответ 1
В соответствии с: Как изменить цвет текста в UITabBarItem в iOS 5
Похоже, что решение может отправлять сообщение в прокси-сервер внешнего вида вместо одного элемента:
[[UITabBarItem appearance] setTitleTextAttributes:@{
NSFontAttributeName:[UIFont fontWithName:@"AmericanTypewriter" size:20.0f]
} forState:UIControlStateNormal];
вот еще несколько ссылок
how-to-change-the-color-of-text-in-uitabbaritem-in-ios-5
ios5-tabbar-fonts-and-color
Ответ 2
Быстрая версия:
UITabBarItem.appearance().setTitleTextAttributes(
[NSFontAttributeName: UIFont(name:"Ubuntu", size:11)!,
NSForegroundColorAttributeName: UIColor(rgb: 0x929292)],
forState: .Normal)
Ответ 3
Swift 3
UITabBarItem.appearance().setTitleTextAttributes([NSFontAttributeName: UIFont(name:"Latio-Regular", size:14)!, NSForegroundColorAttributeName: UIColor.white], for: .normal)
Ответ 4
Попробуйте этот код:
[[UITabBarItem appearance] setTitleTextAttributes: @{NSForegroundColorAttributeName: TAB_BAR_TEXT_NORMAL_COLOR, NSFontAttributeName: [UIFont fontWithName:CUSTOM_FONT_NAME size:TAB_BAR_FONT_SIZE]} forState:UIControlStateNormal];
[[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor], NSFontAttributeName: [UIFont fontWithName:CUSTOM_FONT_NAME size:TAB_BAR_FONT_SIZE]} forState:UIControlStateSelected];
Ответ 5
Так как в iOS7 UITextAttributeFont
устарел, используйте NSFontAttributeName
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"your_font_name" size:20.0f], NSFontAttributeName, nil] forState:UIControlStateNormal];
Ответ 6
Я не смог изменить шрифт, используя принятый ответ. Это то, что я использовал позже в моем методе
didFinishLaunchingWithOptions
AppDelegate:
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UITabBar *tabBar = tabBarController.tabBar;
UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];
UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1];
[tabBarItem1 setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:17 weight:UIFontWeightBold], NSFontAttributeName, nil] forState:UIControlStateSelected];
[tabBarItem2 setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:17 weight:UIFontWeightBold], NSFontAttributeName, nil] forState:UIControlStateSelected];
[tabBarItem1 setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:17 weight:UIFontWeightBold], NSFontAttributeName, nil] forState:UIControlStateNormal];
[tabBarItem2 setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:17 weight:UIFontWeightBold], NSFontAttributeName, nil] forState:UIControlStateNormal];
Дополнительная информация здесь: http://www.appcoda.com/ios-programming-how-to-customize-tab-bar-background-appearance/
Ответ 7
используйте это, он отлично работает...
UIView *iv = [[UIView alloc] initWithFrame:CGRectMake(0,0,230.0,80.0)];
UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 230, 80)];
lbl.textColor = [UIColor whiteColor];
lbl.font = [UIFont fontWithName:@"Ubuntu" size:18.0f];
lbl.textAlignment = NSTextAlignmentCenter;
lbl.text = [NSString stringWithFormat:@"%lu Store Found",(unsigned long)arrOfferList.count];
[iv addSubview:lbl];
self.tabBarController.navigationItem.titleView = iv;