Настройка выбранного изображения в панели вкладок контроллер с раскадровкой
Я использую раскадровку, и у меня есть контроллер панели вкладок с пятью вкладками. В раскадровке я могу установить изображение для элемента панели вкладок. Apple docs предлагает иметь два значка для каждого элемента панели вкладок - один для выбранного и один для невыбранного состояния.
Я не могу понять, как я могу сделать это с помощью раскадровки.
9 ответов:
вы можете использовать раскадровку, чтобы установить выбранное изображение панели вкладок. Я попробовал и это сработало для меня. Выберите UITabbarItem и добавьте атрибут времени выполнения "selectedImage", выберите тип как "изображение" и укажите имя вашего изображения в качестве его значения.
Я использую XCode 6.0, и моя минимальная цель развертывания-iOS 8.0.
вот полное решение для выбранного / невыбранного изображения в панели вкладок для XCode >= 8:
- перейдите в раздел ресурсы изображений - > выберите изображение
- выберите рендер как: "исходное изображение"
- после этого перейдите в раскадровку - > выберите элемент таббара
- в разделе инспекторы атрибутов установите "выбранное изображение" и "изображение", как показано на следующем скриншоте, это это:
Да, это не может быть сделано с помощью раскадровки - код должен быть написан.
на
UINavigationViewController
' sviewDidLoad
способ, мы можем написать следующий код -UITabBar *tabBar = self.tabBar; UITabBarItem *targetTabBarItem = [[tabbar items] objectAtIndex:0]; // whichever tab-item UIImage *selectedIcon = [UIImage imageNamed:@"name-of-selected-image.png"]; [targetTabBarItem setSelectedImage:selectedIcon];
теперь вы можете сделать это легко в раскадровке. На каждом tabviewcontroller, который у вас есть, он должен содержать элемент панели вкладок в иерархии (выглядит как маленькая синяя звезда), нажмите на это, и настройки справа должны выглядеть как изображение ниже. Заголовок и изображение панели вкладок можно изменить здесь.
значок должен быть установлен в соответствующий вид контроллера. При этом вы можете изменить порядок контроллеров вида внутри раскадровки контроллер главной вкладки без необходимости изменять код (
objectAtIndex:0
) для каждого значка.поместите следующую строку в
viewDidLoad
способ:if (self.navigationController.viewControllers.count < 2) self.navigationController.tabBarItem.selectedImage = [UIImage imageNamed:@"image-selected.png"];
The
if
условие гарантирует, что кнопка изменяется только для самого верхнего контроллера вида. Это необходимо при повторном использовании контроллеров представлений в иерархии навигации в качестве контроллеров подвидов.
SWIFT 3.0 --> Идеальный способ установить изображения кнопок панели вкладок выглядит следующим образом:
первый набор изображений, которые вы хотите использовать для кнопки :
let homeImage = UIImage(named: "TabHome") let homeTappedImage = UIImage(named: "TabHomeRed")
затем установите кнопку типа UITabButtonItem:
let homeButton = UITabBarItem(title: homeText, image: homeImage, selectedImage: homeTappedImage) //with this method you set the image when the button is not selected homeButton.image = homeImage?.withRenderingMode(UIImageRenderingMode.alwaysOriginal) //with this method you set the image when the button is selected homeButton.selectedImage = homeTappedImage?.withRenderingMode(.alwaysOriginal)