我有一个TabBar.我试图设置它的样式,以便TabBarItems上的标题具有正常状态和选定状态的不同字体.对于正常状态,我想要Helvetica Neue Light,对于选定状态,我想要Helvetica Neue Medium.无论我做什么,我似乎都无法让这两种状态的字体不同.颜色变化很好.这是我目前拥有的:
// Set the tab bar title appearance for normal state. [[UITabBarItem appearance] setTitleTextAttributes:@{ NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue-Light" size:16],NSForegroundColorAttributeName: [CMK8Colors grayColor] } forState:UIControlStateNormal]; // Set the tab bar title appearance for selected state. [[UITabBarItem appearance] setTitleTextAttributes:@{ NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue-Medium" size:16],NSForegroundColorAttributeName: [CMK8Colors blueColor] } forState:UIControlStateSelected];
请帮忙.
解决方法
好消息和坏消息.
坏消息,这比使用外观代理要困难一些.
好消息它并没有那么难!
头
#import <UIKit/UIKit.h> @interface MYTabbyViewController : UITabBarController @end
履行
#import "MYTabbyViewController.h" @implementation MYTabbyViewController -(void)setSelectedViewController:(UIViewController *)selectedViewController { [super setSelectedViewController:selectedViewController]; for (UIViewController *viewController in self.viewControllers) { if (viewController == selectedViewController) { [viewController.tabBarItem setTitleTextAttributes:@{ NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue-Medium" size:16],NSForegroundColorAttributeName: [UIColor blueColor] } forState:UIControlStateNormal]; } else { [viewController.tabBarItem setTitleTextAttributes:@{ NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue-Light" size:16],NSForegroundColorAttributeName: [UIColor grayColor] } forState:UIControlStateNormal]; } } }
您将需要的最后一部分是使用此子类而不是开箱即用的UITabBarController.如果您正在使用Storyboard,只需选择TabBarController,转到Identity Inspector(右侧面板中的第三个子选项卡)并将UITabBarController更改为MYTabBarController或您拥有的内容.
但是啊!底线,只需更新ViewController tabBarItem!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。