Настройка выбранного изображения в панели управления вкладкой с раскадровки
Я использую Storyboarding, и у меня есть контроллер панели вкладок с пятью вкладками. В раскадровке я могу установить изображение для элемента панели вкладок. Apple docs предлагает иметь два значка для каждого элемента панели вкладок - один для выбранного и один для невыделенного состояния.
Я не могу понять, как я могу это сделать, используя раскадровку.
Ответы
Ответ 1
Вы можете использовать раскадровку для установки выбранного изображения панели. Я пробовал, и это сработало для меня.
Выберите UITabbarItem и добавьте атрибут run-time 'selectedImage', выберите "Тип" как "Изображение" и укажите имя вашего изображения как его значение.
![Setting selected image of Tabbar using storyboard]()
Я использую XCode 6.0, а моя минимальная цель развертывания - iOS 8.0.
Ответ 2
Вот полное решение для выбранного/невыбранного изображения на панели вкладок для кода XCode> = 8:
-
Перейти к активам изображения → выбрать изображение
- Выберите Render AS: "Исходное изображение"
![enter image description here]()
- После этого перейдите на раскадровку → Выбрать элемент на вкладке
- В разделе "Инспекторы атрибутов" установите "Выбранное изображение" & "Изображение" как показано
на следующем скриншоте, что это:
![enter image description here]()
Ответ 3
В XCode 8 и выше вы можете просто сделать это в активах Image. Просто выберите изображение и выберите Render as "Original Image". (Пожалуйста, проверьте прикрепленное изображение).. Иметь удовольствие :)![enter image description here]()
Ответ 4
Да, это невозможно сделать с помощью раскадровки - нужен код, который нужно записать.
В методе UINavigationViewController
viewDidLoad
мы можем написать следующий код -
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];
Ответ 5
Теперь вы можете сделать это легко в раскадровке. На каждом контроллере tabviewcontroller он должен содержать элемент панели вкладок в иерархии (выглядит как маленькая голубая звезда), щелкните по нему, а настройки справа должны выглядеть как показано ниже. Название и изображение панели вкладок можно изменить здесь.
![enter image description here]()
Ответ 6
В новом Xcode 8 вы можете делать это в раскадровке без необходимости определять атрибуты времени выполнения, как это предлагается в ответе с высокой точкой.
![Print Screen Tab Bar item]()
Не забудьте, что изображение должно иметь такой размер:
- @1x: около 25 x 25
- @2x: около 50 x 50
- @3х: около 75 х 75
Ответ 7
Я думаю, что самый простой способ - установить изображение из Инспектора.
у вас есть поле под названием Элемент панели → Изображение, и оно находится там, где вы должны установить имя изображения.
Остерегайтесь, не путайте с элементом Tab Bar → Выбранное изображение
![введите описание изображения здесь]()
Ответ 8
Значок должен быть установлен в соответствующем контроллере представления. При этом вы можете переупорядочить порядок контроллеров представлений внутри основного контроллера вкладки раскадровки без необходимости менять код (objectAtIndex:0
) для каждого значка.
Поместите следующую строку в метод viewDidLoad
:
if (self.navigationController.viewControllers.count < 2)
self.navigationController.tabBarItem.selectedImage = [UIImage imageNamed:@"image-selected.png"];
Условие if
гарантирует, что кнопка будет изменена только для верхнего контроллера. Это необходимо, если вы повторно используете контроллеры представлений в иерархии навигации в качестве контроллеров суб-представлений.
Ответ 9
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)