टैब बार आइटम चयनित रंग को स्टोरीबोर्ड में बदलें


175

मैं डिफ़ॉल्ट टैब के बजाय चयनित होने पर अपने टैब बार आइटम को गुलाबी करना चाहता हूं।

मैं Xcode 6 में स्टोरीबोर्ड संपादक का उपयोग करके इसे कैसे पूरा कर सकता हूं?

यहाँ मेरी वर्तमान सेटिंग है जो काम नहीं कर रही है, नीली पृष्ठभूमि काम करती है लेकिन गुलाबी रंग काम नहीं करता है:

यहां छवि विवरण दर्ज करें



इस उत्तर की जाँच करें यह आपको समाधान के लिए मदद करेगा: stackoverflow.com/a/58727092/7804300
तल्हा अहमद

जवाबों:


408

StoryBoard से "tintColor" नामक रनटाइम कलर विशेषता जोड़ें। यह काम कर रहा है ( Xcode 8 और इसके बाद के संस्करण के लिए )।

यदि आप अचयनित रंग चाहते हैं .. तो आप भी जोड़ सकते हैं unselectedItemTintColor

रनटाइम अटेंशन के रूप में टिंटकलर की स्थापना


24
यह मेरे लिए तब काम आया जब मैंने इस संपत्ति को UITabBarItem में जोड़ा न कि UITabBar से।
सौरभि

1
लेकिन आप स्टोरीबोर्ड में टैब बार आइटम UNselected रंग कैसे सेट करते हैं?
पीटर

1
मेरे मामले के लिए एकदम सही काम करता है - चयनित होने पर मुझे अपने पांच टैबबार आइटम अद्वितीय रंग होने की आवश्यकता है। मैं इस टैबटाइम को मेरे टैबबार UITabBarItemसे UINavigationControllerकनेक्टेड पर सेट करने में सक्षम था और यह त्रुटिपूर्ण काम करता है। बिना किसी कोड को लिखे भी जो बहुत अच्छा है, क्योंकि मैं तीन बार वीसी वर्ग का पुन: उपयोग कर रहा हूं। धन्यवाद!
रोशपम्प

7
इसके विपरीत - यह एकमात्र तरीका है जो iOS 10 पर काम करता है (विशेषताओं पैनल से टिंट काम नहीं करता है, और uitabbaritem का रनटाइम विशेषता "tintColor" भी काम नहीं करता है।
luky

5
स्टैकऑवरफ्लो 1: Apple 0
शारुख मस्तान

175

यह सुंदर समाधान SWIFT 3.0 , SWIFT 4.2 और SWIFT 5.1 पर बहुत अच्छा काम करता है :

स्टोरीबोर्ड पर:

  1. अपना टैब बार चुनें
  2. टैब बार पर चयनित चिह्न के वांछित रंग के लिए टिंटकलर नामक रनटाइम एटिब्यूट सेट करें
  3. टैब बार पर अचयनित चिह्न के इच्छित रंग के लिए अचयनित ItemTintColor नामक एक रनटाइम अटैचमेंट सेट करें

यहां छवि विवरण दर्ज करें

संपादित करें: iOS 10/12 और इसके बाद के संस्करण के लिए Xcode 8/10 के साथ काम करना ।


6
बहुत बहुत धन्यवाद। unselectedItemTintColor बहुत दुर्लभ है
रूशी त्रिवेदी

4
मेरे लिए 'अचयनित ItemTintColor' सही समाधान।
फोजोग्लू

क्या यह काम होगा अगर तैनाती का लक्ष्य 8.0 या 9.0 है? मैंने विकास के लिए स्विफ्ट 3.0 और एक्सकोड 8.0 का उपयोग किया है
ममता

2
टैब बार का चयन करने के लिए महत्वपूर्ण, वास्तव में मेरे लिए स्विफ्ट 4 में काम किया।
कंस तुलाणा

2
अति उत्कृष्ट! अभी भी xCode 10 पर काम करना :) विजुअल एडिटर को रिफ्रेश नहीं करता है लेकिन एक बार संकलित करने के बाद काम करता है :)
मिहेल मिंकोव

64

स्विफ्ट में, xcode 7 (और बाद में) का उपयोग करके, आप अपनी AppDelegate.swift फ़ाइल में निम्न जोड़ सकते हैं:

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 का उपयोग कर सकता था। लेकिन दूसरे रंग के लिए आप शायद आरजीबी मूल्यों का उपयोग कर रहे होंगे।


3
ऐसा लगता है कि कोई भी अन्य विधि काम नहीं करती है (कोई और।) यह काम करता है!
टेडी

@Jarrod मैं लगभग 1 घंटे के लिए इसके साथ बेवकूफ बना रहा था, इस जवाब में अधिक वोट होना चाहिए। धन्यवाद!
लांस सामरिया

53

पर Xcode8मैं बदल गया है ImageTintस्टोरीबोर्ड से और यह अच्छी तरह से काम करता है।

यहां छवि विवरण दर्ज करें

परिणाम:

यहां छवि विवरण दर्ज करें


1
जब कस्टम चित्र का उपयोग किया जाता है तो वह मेरे लिए काम करता है
जुआनजो

1
यह स्वीकृत उत्तर होना चाहिए। यह एक रनटाइम विशेषता की आवश्यकता नहीं है जो लॉन्च स्क्रीन में काम करता है!
क्रिस डगलस

18

स्विफ्ट 3 | Xcode 10

यदि आप सभी टैब बार आइटम को एक ही रंग बनाना चाहते हैं (चयनित और अचयनित) ...


चरण 1

सुनिश्चित करें कि आपकी छवि संपत्ति Render As = टेम्पलेट छवि के लिए सेटअप है । इससे उन्हें रंग विरासत में मिलता है।

Xcode संपत्ति


चरण 2

अपनी टैब बार सेटिंग्स को निम्नानुसार बदलने के लिए स्टोरीबोर्ड संपादक का उपयोग करें:

  • टैब बार सेट करें : जिस रंग को आप चयनित आइकन इनहेरिट करना चाहते हैं, उसका रंग टिंट करें।
  • टैब बार सेट करें : बार कलर से आप जिस टैब टैब को चाहते हैं उसे रंग दें।
  • सेट दृश्य: स्टोरीबोर्ड संपादक में आप जिस रंग को देखना चाहते हैं, उसे रंग दें, यह आपके ऐप के चलने पर आइकन रंग को प्रभावित नहीं करता है।

Xcode स्टोरीबोर्ड संपादक


चरण 3

चरण 1 और 2 चयनित आइकन के लिए रंग बदल देगा। यदि आप अभी भी अचयनित वस्तुओं का रंग बदलना चाहते हैं, तो आपको इसे कोड में करने की आवश्यकता है। मुझे स्टोरीबोर्ड संपादक के माध्यम से इसे करने का कोई तरीका नहीं मिला है।

एक कस्टम टैब बार कंट्रोलर क्लास बनाएं ...

//  TabBarController.swift

class TabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

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

... और अपने टैब बार सीन कंट्रोलर को कस्टम क्लास असाइन करें।

Xcode स्टोरीबोर्ड संपादक


यदि आप यह जानते हैं कि स्टोरीबोर्ड संपादक के माध्यम से अचयनित आइकन रंग को कैसे बदलना है तो कृपया मुझे बताएं। धन्यवाद!


self.tabBar.unselectedItemTintColor = UIColor.white self.tabBar.tintColor = #colorLiteral(red: 0.2, green: 0.7333333333, blue: 0.3450980392, alpha: 1) मेरे लिए काम करें
वहाब खान जादोन

9

इस कोड को उस व्यू कंट्रोलर के viewDidLoad में डालें जिसे आप रंग बदलना चाहते हैं

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

1
क्या सभी टैब के लिए बदलने का कोई तरीका नहीं है?
डेकोर

बस उसी रंग के साथ कोड को अपने सभी टैब के लोड पर रखें
निक

अपने यूआईटैब कंट्रोलर बनाने के ठीक बाद आप इस कोड का उपयोग कर सकते हैं, यह आपके द्वारा चयन पर सभी टैब आइटमों के लिए उल्लिखित रंग सेट करेगा।
जरीन

इस तरह की कोई विधि सेट नहीं की गई हैइमेजटाइंट टिंटेलर
मधु अविनाश

8

आप मुख्य पथ द्वारा चयनित छवि बार टिंट रंग भी सेट कर सकते हैं:

यहां छवि विवरण दर्ज करें

आशा है कि यह आपकी मदद करेगा!! धन्यवाद


iOS 9 में यह
अनदेखी

यह UITabBar आइकन के रंग को बदलने में कैसे मदद करेगा?
मधु अविनाश

7

XCode 8.2, iOS 10, स्विफ्ट 3: अब इसके unselectedItemTintColorलिए एक विशेषता है tabBar:

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

6

आप स्टोरीबोर्ड द्वारा रंग UITabBarItem बदल सकते हैं लेकिन यदि आप कोड द्वारा रंग बदलना चाहते हैं तो यह बहुत आसान है:

// चयनित बार के रंग बदलने के लिए इसका उपयोग करें

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

// यह अचयनित बार बदलने के लिए (iOS 10)

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

// और सभी टैबबार के रंग बदलने के लिए यह लाइन

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

setUnselectedItemTintColor केवल iOS 10 के लिए है
ondermerol

5

किसी तरह हम अकेले स्टोरीबोर्ड का उपयोग करके टैब बार चयनित आइटम टिंट रंग को बदलने में सक्षम नहीं हैं, इसलिए मैंने अपने ViewDidLoad में कोड के नीचे जोड़ा, आशा है कि यह मदद करता है।

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

5

इस कोड को अपने एप्लिकेशन प्रतिनिधि -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) )

आवश्यक रंग का आरजीबी लगाएं


4

IOS 10 में काम करने वाली स्विफ्ट 3 में यही समाधान है:

सबसे पहले, आप अपना खुद का टैब बार कंट्रोलर उपवर्ग बनाते हैं और इसे अपने स्टोरीबोर्ड में अपने टैब कंट्रोलर में जोड़ते हैं। में viewDidLoad()विधि आप तो टैब बार अनुकूलित कर सकते हैं। यहां यह कहा जाना चाहिए कि tintColorकी विशेषता 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 )
                }
            }
        }
    }
}

इस दृष्टिकोण के साथ नकारात्मक पक्ष यह है कि आपके आइटम चित्रों में पहले से वांछित रंग होना चाहिए।


उलझा हुआ। जारोड का जवाब सभी आइकन के साथ अच्छा काम करता है।
जोस रामिरेज़

4

यह सबसे अच्छा तरीका Image Tintस्टोरीबोर्ड में बदलना है


2

आप UITabBarControllerस्टोरीबोर्ड में इसके साथ सबक्लास कर सकते हैं और इसे बदल सकते हैं । viewDidLoadउपवर्ग के अपने कार्यान्वयन में इसे कॉल करें:

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

प्राप्त करना:'UITabBar' does not have a member named 'setSelectedImageTintColor'
डेकोर

इसके अलावा, मैं स्विफ्ट का उपयोग कर रहा हूं, इसलिए मैं self.tabBar.setSelectedImageTintColor = UIColor.greenColorयह सुनिश्चित कर रहा हूं: अगर यह सही है या नहीं
डेकोर

2
@Deekor यह tintColorनहीं है selectedImageTintColor, btw selectedImageTintColoriOS 8 में पदावनत है।
अक्टूबर को chancyWu
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.