Подтвердить что ты не робот

Настройка выбранного изображения в панели управления вкладкой с раскадровки

Я использую Storyboarding, и у меня есть контроллер панели вкладок с пятью вкладками. В раскадровке я могу установить изображение для элемента панели вкладок. Apple docs предлагает иметь два значка для каждого элемента панели вкладок - один для выбранного и один для невыделенного состояния.

Я не могу понять, как я могу это сделать, используя раскадровку.

4b9b3361

Ответ 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)