Изменение цвета выбранного элемента панели вкладок в раскадровке



Я хочу изменить мои элементы панели вкладок, чтобы быть розовым при выборе вместо синего по умолчанию.



Как я могу сделать это с помощью редактора раскадровки в Xcode 6?



вот мои текущие настройки, которые не работают, синий фон работает, но розовый не работает:



enter image description here

764   14  

14 ответов:

добавить атрибут цвета времени выполнения с именем "tintColor" из раскадровки. Это работает(для Xcode 8 и выше).

Если вы хотите невыбранные цвета.. вы можете добавить unselectedItemTintColor тоже.

setting tintColor as Runtime Attribute

это элегантное решение отлично работает на SWIFT 3.0 и SWIFT 4.0:

на раскадровке:

  1. выберите Панель Вкладок
  2. поставил Во Время Выполнения Атрибута под названием tintColor для нужного цвета Выбранный Значок на вкладке бар
  3. поставил Во Время Выполнения Атрибута под названием unselectedItemTintColor для нужного цвета элемент Невыбранный Значок на вкладке бар

enter image description here

Edit: протестировано с Xcode 8, для iOS 10 и выше

в Swift, используя xcode 7 (и более поздние версии), вы можете добавить следующее в свой AppDelegate.swift file:

UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0)

вот как выглядит полный метод:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    // I added this line
    UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0)

    return true
}

в примере выше мой элемент будет белым. "/255.0 " необходим, потому что он ожидает значение от 0 до 1. Для Белого, я мог бы просто использовать 1. Но для другого цвета вы, вероятно, будете использовать значения RGB.

On Xcode8 Я изменил ImageTint из раскадровки, и это хорошо работает.

enter image description here

результат:

enter image description here

Swift 3 / Xcode 10

если вы хотите сделать все элементы панели вкладок одного цвета (выбрано и не выбрано)...


Шаг 1

убедитесь, что ваши ресурсы изображений настроены на Render As = Шаблон Изображения. Это позволяет им наследовать цвет.

Xcode Assets


Шаг 2

используйте редактор раскадровки чтобы изменить настройки панели вкладок следующим образом:

  • Set Панель Вкладок: Оттенок Изображения к цвету, который вы хотите, чтобы выбранный значок унаследовал.
  • Set Tab Bar: Bar Tint к цвету, который вы хотите, чтобы панель вкладок была.
  • Set Вид: Подкраска цвета вы хотите видеть в Редакторе раскадровки, это не влияет на цвет значка, когда ваше приложение бежать.

Xcode Storyboard Editor


Шаг 3

шаги 1 и 2 изменят цвет выбранного значка. Если вы все еще хотите изменить цвет невыбранных элементов, вам нужно сделать это в коде. Я не нашел способ сделать это через редактор раскадровки.

создать пользовательский класс контроллера панели вкладок...

//  TabBarController.swift

class TabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // make unselected icons white
        self.tabBar.unselectedItemTintColor = UIColor.white
    }
}

... и назначьте пользовательский класс для сцены панели вкладок контроллер.

Xcode Storyboard Editor


Если вы выясните, как изменить цвет невыбранного значка с помощью редактора раскадровки, пожалуйста, дайте мне знать. Спасибо!

поместите этот код в viewDidLoad контроллера вида, который вы хотите изменить цвет

[[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];

вы также можете установить выбранный цвет оттенка панели изображений по ключевому пути:

enter image description here

надеюсь, что это поможет вам!! Спасибо

XCode 8.2, iOS 10, Swift 3: теперь есть на tabBar:

self.tabBar.unselectedItemTintColor = UIColor(red: 0/255.0, green: 200/255.0, blue: 0/255.0, alpha: 1.0)

Как-то мы не можем изменить цвет оттенка выбранного элемента панели вкладок, используя только раскадровку, поэтому я добавил ниже код в моем ViewDidLoad, надеюсь, что это поможет.

[[UITabBar appearance] setTintColor:[UIColor whiteColor]]; 

вы можете изменить цвета UITabBarItem по раскадровке, но если вы хотите изменить цвета по коду, это очень просто:

// используйте это для изменения цвета выбранного бара

   [[UITabBar appearance] setTintColor:[UIColor blueColor]];

// Это для изменения невыбранной панели (iOS 10)

   [[UITabBar appearance] setUnselectedItemTintColor:[UIColor yellowColor]];

// и эта строка для изменения цвета всех вкладках

   [[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];

это решение в Swift 3, которое работает в iOS 10:

во-первых, вы создаете свой собственный подкласс контроллера панели вкладок и добавляете его в свой контроллер вкладок в своей раскадровке. В viewDidLoad() метод вы можете настроить панель вкладок. Здесь следует отметить, что на tabBar представляет цвет выбранного элемента, а не цвет невыбранных! Чтобы изменить цвет невыбранных элементов, я рекомендую зацикливаться на каждом элементе и используйте исходные цвета ваших изображений, чтобы они не отображались как серый автоматически.

class CustomTabBarVC: UITabBarController
{
    override func viewDidLoad()
    {
        super.viewDidLoad()

        self.tabBar.tintColor = AppColor.normalRed
        self.tabBar.barTintColor = .white
        self.tabBar.isTranslucent = true

        if let items = self.tabBar.items
        {
            for item in items
            {
                if let image = item.image
                {
                    item.image = image.withRenderingMode( .alwaysOriginal )
                }
            }
        }
    }
}

единственным недостатком этого подхода является то, что ваши изображения элементов должны уже иметь желаемый цвет, к которому вы стремитесь.

добавьте этот код в делегат приложения-did_finish_launching_with_options функция

UITabBar.appearance().tintColor = UIColor( red: CGFloat(255/255.0), green: CGFloat(99/255.0), blue: CGFloat(95/255.0), alpha: CGFloat(1.0) )

поставить RGB нужного цвета

вы можете подкласс UITabBarController, и заменить его в раскадровке. В вашем viewDidLoad реализация подкласса называют это:

[self.tabBar setTintColor:[UIColor greenColor]];

Это лучший способ, чтобы изменить Image Tint в раскадровке

Comments

    Ничего не найдено.