我想创建一个自定义UITabBar并且熟悉外观代理。我知道我可以将它的背景图像设置为我想要的任何东西。如何更改每个选项卡的选定状态?基本上我想要消除光泽/光泽效果。
答案 0 :(得分:2)
你需要抓住实际的UITabBarItem
这样的事情应该可以解决个别项目的问题
UITabBar *tabBar = tabBarViewController.tabBar;
for(UITabBarItem *tabItem in tabBar.items)
{
//in reality you will probably change these images and grab from the array individually
UIImage *selectedImage = [UIImage imageNamed:@"selected.png"];
UIImage *unselectedImage = [UIImage imageNamed:@"unselected.png"];
[tabItem setFinishedSelectedImage:selectedImage withFinishedUnselectedImage:unselectedImage];
}
或者您可以使用代理使用
更改所有UITabBarItems[UITabBarItem appearance]
答案 1 :(得分:0)
您可以使用UIBarItem
和UITabBarItem
的外观代理来完成此操作。
来自Apple的文档:
自定义外观
在iOS v5.0及更高版本中,您可以自定义 通过使用设置项标签文本属性来显示标签栏的外观 UIBarItem声明的外观选择器。你也可以使用 “自定义外观”中列出的方法。您可以自定义 使用外观代理的所有分段控件的外观(for 例如,[UITabBarItem外观]),或仅一个标签栏。您 也可以使用。提供完成的选定和未选择的图像 “管理完成的选定图像”中列出的方法;这些 但是,方法不参与UIAppearance代理API(参见 UIAppearance)。 UIKit现在提供任何自动治疗 完成图像。为获得良好的结果,您必须提供已完成的选择 使用匹配对中未选择的图像 setFinishedSelectedImage:withFinishedUnselectedImage: