2012-12-10 156 views
1

Custom tab bar items are taller than the tab bariOS的自定義標籤欄項目個子比標籤欄

好了,所以,我想創建一個自定義標籤欄。我讀過一百篇教程,並下載了一半的示例代碼項目,這個問題似乎仍然存在於所有這些項目中。

我真的不想要一個自定義背景,我真正想要的按鈕佔據整個區域,所以沒有背景顯示。爲什麼當使用大小爲49像素(視網膜爲98像素)的圖像作爲背景和按鈕...標籤欄本身被放大並且蘋果增加的醜陋光芒是可見的?

這是我使用的代碼(在這裏發現棧):

UIImage *selectedImage0 = [UIImage imageNamed:@"transactions_tab_btn_active"]; 
UIImage *unselectedImage0 = [UIImage imageNamed:@"transactions_tab_btn"]; 

UIImage *selectedImage1 = [UIImage imageNamed:@"bills_tab_btn_active"]; 
UIImage *unselectedImage1 = [UIImage imageNamed:@"bills_tab_btn"]; 

UIImage *selectedImage2 = [UIImage imageNamed:@"messages_tab_btn_active"]; 
UIImage *unselectedImage2 = [UIImage imageNamed:@"messages_tab_btn"]; 

UIImage *selectedImage3 = [UIImage imageNamed:@"reports_tab_btn_active"]; 
UIImage *unselectedImage3 = [UIImage imageNamed:@"reports_tab_btn"]; 

UITabBar *tabBar = self.tabBarController.tabBar; 
UITabBarItem *item0 = [tabBar.items objectAtIndex:0]; 
UITabBarItem *item1 = [tabBar.items objectAtIndex:1]; 
UITabBarItem *item2 = [tabBar.items objectAtIndex:2]; 
UITabBarItem *item3 = [tabBar.items objectAtIndex:3]; 

UIImageView *tabBarImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tab_bar"]]; 
if ([[[UIDevice currentDevice] systemVersion] floatValue] < 5) { 
    [tabBar insertSubview:tabBarImageView atIndex:0]; 
}else{ 
    [tabBar insertSubview:tabBarImageView atIndex:1]; 
} 

[item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0]; 
[item1 setFinishedSelectedImage:selectedImage1 withFinishedUnselectedImage:unselectedImage1]; 
[item2 setFinishedSelectedImage:selectedImage2 withFinishedUnselectedImage:unselectedImage2]; 
[item3 setFinishedSelectedImage:selectedImage3 withFinishedUnselectedImage:unselectedImage3]; 

同樣,我可以刪除背景圖片,因爲它是對我沒有用的,但是沒有它,默認的黑色背景的標籤酒吧是可見的。兩者都不好。請幫助。

回答

0

嗯,我可以幫你發光。要隱藏它,只需創建一個透明圖像並使用它。

UIImage* image = [UIImage imageNamed:@"transparent.png"]; 
[[UITabBar appearance] setSelectionIndicatorImage:image];