UINavigationBar.appearance().tintColor
एप्पल के प्रलेखन के साथ संघर्ष स्थापित करने वाले सभी उत्तर UIAppearance.h
।
IOS7 के लिए नोट: iOS7 पर tintColor
संपत्ति को स्थानांतरित कर दिया गया है UIView
, और अब इसमें वर्णित विशेष विरासत वाला व्यवहार है UIView.h
। यह अंतर्निहित व्यवहार उपस्थिति प्रॉक्सी के साथ संघर्ष कर सकता है, और इसलिए tintColor
अब उपस्थिति प्रॉक्सी के साथ अस्वीकृत है।
Xcode में, आपको उस प्रत्येक प्रॉपर्टी पर कमांड-क्लिक करना होगा, जिसे आप हेडर फाइल का निरीक्षण करने के लिए उपस्थिति प्रॉक्सी के साथ उपयोग करना चाहते हैं और सुनिश्चित करें कि प्रॉपर्टी के साथ एनोटेट किया गया है UI_APPEARANCE_SELECTOR
।
तो नेविगेशन बार जामुनी और शीर्षक और बटन को सफेद करने का सही तरीका है, एप्लिकेशन के माध्यम से उपस्थिति प्रॉक्सी के माध्यम से सफ़ेद होना:
UINavigationBar.appearance().isTranslucent = false
UINavigationBar.appearance().barTintColor = .purple
UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white]
UIBarButtonItem.appearance().tintColor = .white
ध्यान दें कि UIBarButtonItem
एक उपवर्ग नहीं है UIView
, बल्कि NSObject
। इसलिए इसकी tintColor
संपत्ति विरासत में नहीं मिली tintColor
हैUIView
।
दुर्भाग्य से, UIBarButtonItem.tintColor
इसके साथ एनोटेट नहीं है UI_APPEARANCE_SELECTOR
- लेकिन यह मुझे एक दस्तावेज बग लगता है। इस रडार में Apple इंजीनियरिंग की प्रतिक्रिया का समर्थन किया गया है।