iOS: Почему пользовательский элемент панели вкладок отображается только как серый силуэт?

Я пытаюсь установить значки панели вкладок моего UITabBarController с пользовательскими * .png файлами (один для выбранного и один для невыделенного).

Все изображения находятся в непереплетенном формате png и названы правильно (@ 2x, @ 3x и т. Д.), Которые находятся в * .imageset.

Но элементы панели табуляции показаны только как такие силуэты, как это:

введите описание изображения здесь

Я попытался установить эти изображения в Interface Builder без успеха. Затем я также попытался установить их программно в функции «loadView» MyTabBarController (которая расширяет UITabBarController) следующим образом:

UIImage *selectedImage; UIImage *unselectedImage; // tab1 selectedImage = [UIImage imageNamed:@"cmdGamesActive"]; unselectedImage = [UIImage imageNamed:@"cmdGamesInactive"]; UITabBarItem *item1 = [self.tabBar.items objectAtIndex:0]; item1 = [item1 initWithTitle:@"Games" image:unselectedImage selectedImage:selectedImage]; // tab2 selectedImage = [UIImage imageNamed:@"cmdFriendsActive"]; unselectedImage = [UIImage imageNamed:@"cmdFriendsInactive"]; UITabBarItem *item2 = [self.tabBar.items objectAtIndex:1]; item2 = [item2 initWithTitle:@"Friends" image:unselectedImage selectedImage:selectedImage]; // tab3 selectedImage = [UIImage imageNamed:@"cmdTrophiesActive"]; unselectedImage = [UIImage imageNamed:@"cmdTrophiesInactive"]; UITabBarItem *item3 = [self.tabBar.items objectAtIndex:2]; item3 = [item3 initWithTitle:@"Trophies" image:unselectedImage selectedImage:selectedImage]; // tab4 selectedImage = [UIImage imageNamed:@"cmdSettingsActive"]; unselectedImage = [UIImage imageNamed:@"cmdSettingsInactive"]; UITabBarItem *item4 = [self.tabBar.items objectAtIndex:3]; item4 = [item4 initWithTitle:@"Settings" image:unselectedImage selectedImage:selectedImage]; 

… с тем же результатом.

Есть идеи, как решить эту проблему?

Согласно этому ответу , я сделал что-то лишнее и вроде бы отвечаю за вас здесь. У меня есть свой пользовательский UITabBarController, который связан с моим UITabBarController в файле StoryBoard. Поэтому, чтобы удалить автоматический оттенок, предоставленный iOS, когда TabBar не выбран, я в конечном итоге удалил его таким образом. Изображения могут быть огромным разнообразием изображений, но точно так, как это рекомендуется здесь . Вот оно:

 NSArray *navConArr = self.viewControllers;//self is custom UITabBarController UINavigationController *naviOne = [navConArr objectAtIndex:0];//I have 3 different tabs, objectAtIndex:0 means the first tab navigation controller UITabBarItem *naviBtn = naviOne.tabBarItem; UIImage *image = [[UIImage imageNamed:@"iconNaviOne"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; [naviBtn setSelectedImage:image]; [naviBtn setImage:image]; 

К счастью, это работает как шарм (:

Я столкнулся с подобной проблемой. Я выбрал несколько значков для моих вкладок, таких как «mic», «смайлик» и «настройки».

Но единственное, что было видно, когда я выполнял программу, были серыми и синими квадратами.

Я изменил свои «.png» изображения, чтобы они были прозрачными, и теперь они видны, как они были предназначены.

т.е. убедитесь, что изображения, используемые для значков вкладок, не имеют фона.

Это должно сделать трюк:

 UITabBarItem *item0 = [_tabBar.items objectAtIndex:0]; item0.image = [[UIImage imageNamed:@"edit_profile_tab"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; item0.selectedImage = [[UIImage imageNamed:@"edit_profile_tab_active"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
  • Как легко сделать функцию круглой до ближайшей сотой
  • Как удалить предупреждение при создании пользовательских фреймворков ios?
  • Невозможно настроить UITableViewCell в Xcode6, потому что «Автоматический синтез свойств не будет синтезировать свойство ..»
  • Прокрутка ViewController Swift
  • Swift, Xcode 6 Beta 4: Как получить путь к файлу изображения, который в настоящее время отображается с использованием ресурсов инфраструктуры Photos?
  • Методы и перечисления документов в Xcode 6
  • Обновление динамических ограничений
  • Можно ли обрабатывать push-уведомления в проекте статической библиотеки в iOS?
  • SWRevealViewController insertObject: объект atIndex не может быть nil
  • Ошибка Xcode 6? Добавление iPhone 6/6 Plus LaunchImage меняет ограничения приложений
  • Xcode 6 работает с отключенными модульными тестами
  • Давайте будем гением компьютера.