簡體   English   中英

Tabbar項目圖像不會出現

[英]Tabbar item image doesn't appear

我對tabbar項目的圖像有問題。 我在每個tabbar項目上設置了一個圖像,但是當我運行應用程序時,出現的唯一圖像是第一個tabbar項目的圖像。 在我選擇其中一個選項卡之前,其他標簽欄項目的圖像不會顯示。 我用來在tabbar項目上設置圖像的代碼如下:

[self.tabBarItem setImage:[UIImage imageNamed:@"multi30x30.png"]];

[self.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"multi30x30.png"]
              withFinishedUnselectedImage:[UIImage imageNamed:@"multi30x30.png"]];

有人能幫我嗎?

你可以試試這個:

[[[self.tabBarController.viewControllers objectAtIndex:0] tabBarItem]setFinishedSelectedImage:[UIImage imageNamed:@"LocateIconActive.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"LocateIconInactive.png"]];

[[[self.tabBarController.viewControllers objectAtIndex:1] tabBarItem]setFinishedSelectedImage:[UIImage imageNamed:@"ProductsIconActive.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"ProductsIconInactive.png"]];

[[[self.tabBarController.viewControllers objectAtIndex:2] tabBarItem]setFinishedSelectedImage:[UIImage imageNamed:@"NextDeliveryIconActive.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"NextDeliveryIconInactive.png"]];
[[tabBarController.tabBar.items objectAtIndex:0] setFinishedSelectedImage:[UIImage imageNamed:@"blabla1.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"bleble1.png"]];
[[tabBarController.tabBar.items objectAtIndex:1] setFinishedSelectedImage:[UIImage imageNamed:@"blabla2.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"bleble2.png"]];
[[tabBarController.tabBar.items objectAtIndex:2] setFinishedSelectedImage:[UIImage imageNamed:@"blabla3.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"bleble3.png"]];

使用此代碼: -

- (BOOL)application:(UIApplication *)application
 didFinishLaunchingWithOptions:(NSDictionary 
  *)launchOptions
 {


UITabBarController *tabBarController 
= (UITabBarController 
 *)self.window.rootViewController;

UIImage *selectedImage0 = [UIImage
   imageNamed:@"tb_inorganic_selected"];
UIImage *unselectedImage0 = [UIImage imageNamed:@"tb_inorganic_normal"];

UIImage *selectedImage1 = [UIImage imageNamed:@"tb_organic_selected"];
UIImage *unselectedImage1 = [UIImage imageNamed:@"tb_organic_normal"];

UIImage *selectedImage2 = [UIImage imageNamed:@"tb_acid_selected"];
UIImage *unselectedImage2 = [UIImage imageNamed:@"tb_acid_normal"];



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

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

創建並返回具有指定標題,未選擇圖像和所選圖像的新項目。 如果未提供selectedImage,則圖像將用作未選擇和選定的圖像。 默認情況下,將根據源圖像中的Alpha值自動創建實際未選擇和選定的圖像。 要防止系統着色,請使用UIImageRenderingModeAlwaysOriginal提供圖像。 可用性iOS 7及更高版本。

UIImage *aImage = [UIImage imageNamed:@"a"]; 
aImage = [aImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

UIImage *inaImage = [UIImage imageNamed:@"ina"];
inaImage = [inaImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

self.aController.tabBarItem = [[UITabBarItem alloc]initWithTitle:@"title" image:inaImage selectedImage:aImage];

我寧願ViewController這樣做。 因此,在我看來,最好的解決方案應該是覆蓋init方法並在此處設置TabBarItem。

您可能正在viewDidLoad中執行此操作,因此只顯示第一個項目。

對不起拼寫錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM