我尝试了适用于iOS 5的全新Customizing API,并遇到了一些我不理解的问题。我这样做的方式:
UITabBar *tabBar = [rootController tabBar];
if ([tabBar respondsToSelector:@selector(setBackgroundImage:)])
{
[tabBar setBackgroundImage:[UIImage imageNamed:@"tabbar_bg.png"]];
tabBar.selectionIndicatorImage = [UIImage imageNamed:@"over.png"];
tabBar.tintColor = [UIColor colorWithRed:56.0/255.0 green:63.0/255.0 blue:74.0/255.0 alpha:1.0];
tabBar.selectedImageTintColor = [UIColor colorWithRed:94.0/255.0 green:102.0/255.0 blue:114.0/255.0 alpha:1.0];
}
问题如下图所示:
边框是我的问题...只有当我尝试使用漂亮的(:P)颜色时它才会出现..如果我尝试用白色看起来像这样:
你有任何想法如何解决它?
答案 0 :(得分:0)
如果您创建UITabBarItem的子类并实现方法
- (UIImage *)selectedImage
- (UIImage *)unselectedImage
您可以从这些图像中返回任何想要的图像,但它们不会应用任何样式效果。
从技术上讲,这些都是私有方法,但你不是在调用它们,而是在覆盖它们,而且我已经看到很多应用程序使用这种技术而不会被拒绝。
您还可以使用类别覆盖应用中所有tabbaritems的这些方法。一个好方法就是覆盖selectedImage以返回图像,如下所示:
- (UIImage *)selectedImage
{
return self.image;
}
这样,所有标签栏项目都将使用您提供的任何图像而不对selectedImage应用任何效果,但仍将使用默认的灰色样式作为unselectedImage。请注意,这意味着您为标签栏项目提供了带有颜色的图像,而不仅仅是正常的蒙版图像。