문제

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];

지정된 제목, 선택한 이미지 및 선택한 이미지로 새 항목을 작성하고 반환합니다. 선택된 이미지가 제공되지 않으면 이미지가 선택되지 않은 이미지와 선택된 이미지로 사용됩니다. 기본적으로 실제 선택되지 않은 및 선택된 이미지는 소스 이미지의 알파 값에서 자동으로 생성됩니다. 시스템 채색을 방지하려면 UIIMAGERENDERENGEMODEALWAYSORIGINAL과 함께 이미지를 제공하십시오. 유효성 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 Method를 무시하고 Tabbaritem을 여기에 설정해야합니다.

아마도 당신은 ViewDidload에서 그것을하고 있으므로 첫 번째 항목 만 나타납니다.

철자 실수에 대해 죄송합니다.

스위프트 5.4

  tabBarController?.viewControllers?[index].tabBarItem.image = UIImage(named: "imageName")
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top