今日尝试用storyboard实现tabbar,发现一下问题:
1.在storyboard中设置tabbaritem选中时image无法显示;
2.tabbaritem选中状态默认背系统渲染为蓝色;
解决方法:
//设置Image按照图像原始样式渲染,也就是无系统渲染
UIImage *selectedImage = [[UIImage imageNamed:@"tabbar_home_selected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
self.tabBarController.tabBar.selectedItem.selectedImage = selectedImage;
但是tabbaritem的title,在选中状态下还是被渲染为系统颜色。需要在自定义tabbarcontroller中设置tabbaritem样式。设置title颜色。
+(void)initialize {
UITabBarItem *tabBarItem = [UITabBarItem appearance];
//设置tabbarItem的字体颜色 此属性在viewdidload中设置不起效果。
[tabBarItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor orangeColor]} forState:UIControlStateSelected];
}
总结:
由于以前是代码实现tabbarcontroller,以前使用controller.tabBarItem.selectedImage 在storyboard中不起作用。设置title颜色也需要放到initialize中。
self.tabBar.tintColor = [UIColor greenColor];设置tabbar渲染颜色。如果选中状态title 与 image颜色一致,设置此属性比较方便。