自定义UITabBar的UIKit外观代理

时间:2011-10-24 21:00:16

标签: iphone objective-c cocoa-touch uikit uitabbarcontroller

我想创建一个自定义UITabBar并且熟悉外观代理。我知道我可以将它的背景图像设置为我想要的任何东西。如何更改每个选项卡的选定状态?基本上我想要消除光泽/光泽效果。

2 个答案:

答案 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)

您可以使用UIBarItemUITabBarItem的外观代理来完成此操作。

来自Apple的文档:

  

自定义外观

     

在iOS v5.0及更高版本中,您可以自定义   通过使用设置项标签文本属性来显示标签栏的外观   UIBarItem声明的外观选择器。你也可以使用   “自定义外观”中列出的方法。您可以自定义   使用外观代理的所有分段控件的外观(for   例如,[UITabBarItem外观]),或仅一个标签栏。您   也可以使用。提供完成的选定和未选择的图像   “管理完成的选定图像”中列出的方法;这些   但是,方法不参与UIAppearance代理API(参见   UIAppearance)。 UIKit现在提供任何自动治疗   完成图像。为获得良好的结果,您必须提供已完成的选择   使用匹配对中未选择的图像   setFinishedSelectedImage:withFinishedUnselectedImage: