2011-11-26 89 views
3

我嘗試了iOS 5的新的自定義API,並有一些我不明白的問題。我的方式做到這一點:iOS5上的自定義TabBar與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]; 
} 

的問題如下所示的圖像:

enter image description here

邊境北京時間我的問題...它只有當我嘗試使用它時尼斯(:P)的顏色..如果我用白色嘗試它,它看起來是這樣的:你有什麼想法如何解決它

enter image description here

做什麼?

+1

沒有人有答案嗎? :( –

回答

0

如果創建UITabBarItem的子類並實現方法

- (UIImage *)selectedImage 
- (UIImage *)unselectedImage 

可以回到你從這些想要的任何圖像和他們不會有任何應用造型效果。

從技術上講,這些都是私有方法,但是你不會打電話給他們,你會壓倒他們,而且我已經看到很多應用程序使用這種技術而不被拒絕。

您還可以使用類別覆蓋應用中所有tabbaritems的這些方法。一個好的技巧是隻覆蓋selectedImage返回圖像,像這樣:

- (UIImage *)selectedImage 
{ 
    return self.image; 
} 

這樣一來,所有的標籤欄項目將使用您的任何圖像,而不申請的selectedImage任何影響,但仍將使用默認的灰色樣式爲unselectedImage。請注意,這意味着您爲標籤欄項目提供顏色爲的顏色爲,而不僅僅是正常的遮罩圖像。