मुझे एक UINavigationController मिला है और मैंने इंटरफ़ेस बिल्डर में नेविगेशन बार की टिंट प्रॉपर्टी का उपयोग करके इसे सफेद में बदल दिया है। लेकिन बटन और शीर्षक में पाठ अभी भी डिफ़ॉल्ट रंग, सफेद है, और इसलिए सफेद पृष्ठभूमि के खिलाफ खो जाता है। किसी को पता है कि इस के आसपास कैसे काम करना है?UINavigationBar बटन आइटम पर टेक्स्ट रंग कैसे बदलें
उत्तर
iOS 5 के रूप में यह यह बहुत आसान है, UIBarButtonItem उपस्थिति प्रॉक्सी का प्रयोग:
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor blackColor],
UITextAttributeTextColor,
[UIColor clearColor],
UITextAttributeTextShadowColor, nil];
[[UIBarButtonItem appearance] setTitleTextAttributes: attributes
forState: UIControlStateNormal];
इसे एप्लिकेशन में सेट करें: didFinishLaunchingWithOptions:
क्या आप जागरूकता में बटन खोजने के लिए UINavigationBar दृश्य की सामग्री को पुन: सक्रिय नहीं कर सकते?
[[theNavigationBar.subviews objectAtIndex:1] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[[theNavigationBar.subviews objectAtIndex:2] setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
हालांकि, विशाल, चेतावनी:
आप कर सकते हैं। लेकिन मैं एक setTextColor कर रहा हूँ: forStates: मेरे बटन पर और यह अनदेखा प्रतीत होता है। यद्यपि दृढ़ रहेंगे। इसके अलावा निजी एपीआई (या यूआई की संरचना के कम से कम निजी अनुमानित ज्ञान) पर सीमाएं भी उपयोग करती हैं। – schwa
ओह मैं इसे वापस लेता हूं - यह काम करता है। फॉलो अप उत्तर देखें ... – schwa
मैंने इस तरह के अन्य विचारों के अंदर देखा है। हालांकि यह थोड़ा निजी एपीआई-आईएसएच है, लेकिन कम से कम कोई धारणा नहीं होती है: यदि आंतरिक बदलते हैं, तो आपका कोड उस स्थिति का पता नहीं लगाएगा जिसे आप खोज रहे हैं। लेकिन मैंने अभी तक UINavigationBar नहीं किया है। –
यहाँ एक तरीका है। भविष्य में ओएस रिलीज को तोड़ने की अत्यधिक संभावना है और इसकी अनुशंसा नहीं की जाती है।
कम से कम आपको बहुत से परीक्षण करना चाहिए और सुनिश्चित करें कि नेविगेशन बार के सबव्यू लेआउट की आपकी धारणाएं सही हैं।
मुझे लगता है कि विशेष रूप से नाजुक में, क्योंकि आप इंडेक्स द्वारा आइटम तक पहुंच रहे हैं। सभी सबव्यू आइटम प्राप्त करने के लिए और अधिक सुरक्षित होगा, आप जो अपेक्षा करते हैं उसके खिलाफ कक्षाओं की तुलना करें, और यहां तक कि पदों का उपयोग करें। लेकिन यह वहीं विचार का कर्नेल है। :) –
सही। मैंने इसे करने का वास्तविक तरीका पोस्ट नहीं किया। काम करने वाली पहली विधि। रक्षात्मक प्रोग्रामिंग ftw। – schwa
कितना मजाकिया है कि मुझे लगभग दो महीने का जवाब नहीं मिलता है, और फिर मुझे उनकी पूरी फसल मिलती है ... वैसे भी, मैंने इसे एक जवाब दिया क्योंकि यह सबसे स्केलेबल है, भले ही मैं कस्टम का उपयोग कर समाप्त हुआ बटन छवियों। उम्मीद है कि कुछ इसे आधिकारिक एपीआई में v3.0 द्वारा बनाता है। – lawrence
या आप एक सेटर आपके द्वारा निर्दिष्ट के साथ अपने स्वयं बटन बार आइटम उपवर्ग का उपयोग करें, lus iPhone OS 3 हर बटन
रूप drunknbass सुझाव दिया मैंने किया था के लिए पाठ रंग का पर्दाफाश करने लगता नहीं है। मैंने कुछ राज्यों में बैक-बटन के लिए छवियों की एक श्रृंखला बनाने और कुछ राज्यों में नियमित बटन बनाने का प्रयास किया, और उचित शैलियों को स्थापित करने के लिए उन्हें एक कस्टम UIButton उपclass में रखा।
एक समाधान के रूप में यह विशेष रूप से अच्छी तरह से स्केल नहीं करता है, लेकिन मेरी ज़रूरतें काफी सरल थीं। अगर इसे अंतर्निहित नियंत्रण में सबव्यू ऑर्डर बदलते हैं तो यह तोड़ने का लाभ नहीं है, जो उस दृष्टिकोण का स्पष्ट नकारात्मक पक्ष है। कई छवियों की आवश्यकता के नुकसान। दूसरी मुश्किल चीज एक अभिविन्यास परिवर्तन को संभालने में है, क्योंकि बटन आकार बदलना चाहिए।
संबंधित नोट पर, यदि आप अपने नेविगेशन बार के रंग रंग को बदलते हैं, तो यह टैब बार के क्रम को अनुकूलित करने के लिए विशेष "अधिक" दृश्य नियंत्रक के साथ अच्छा नहीं खेलता है। उस दृश्य में टूलबार के रंग को बदलने के लिए कोई "स्वीकार्य" तरीका प्रतीत नहीं होता है।
यह एक भी एनवी बार के लिए एक अच्छा समाधान है। लेकिन जैसा कि आपने स्वीकार किया है कि यह बिल्कुल ठीक नहीं है। मैं शायद सामान्य रूप से इस तरह के समाधान का उपयोग करता हूं। लेकिन मैं एक ऐप पर काम कर रहा हूं जिसमें बहुत गतिशील यूई आवश्यकताएं हैं। मुझे कुछ और हैकी करने के लिए मजबूर होना पड़ सकता है :-( – schwa
यहाँ साफ रास्ता (सार्वजनिक एपीआई पर निर्भर) इस IMHO करें: यदि आप इसे लागू करने के लिए navigationItem
की titleView
संपत्ति का उपयोग करना चाहिए अपने स्वयं के UILabel
जिस पर आप textColor
UILabel* lbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
lbl.textAlignment=UITextAlignmentCenter;
lbl.backgroundColor=[UIColor clearColor];
lbl.textColor=[UIColor colorWithRed:0.18 green:0.2 blue:0.56 alpha:1];
theControllerOnWhichYouWantToHaveATitleWithYourOwnColor.navigationItem.titleView=lbl;
[lbl release];
यह नेविगेशन आइटम के बाएं और दाएं बटन के रंग को प्रभावित नहीं करता है। – lawrence
-1! :) ठीक है यह उदाहरण के लिए बैक बटन को हल नहीं करता है, लेकिन यह हल करता है मुख्य शीर्षक दृश्य के लिए मुद्दा। उसी दृष्टिकोण को उसी बटन पर लागू किया जा सकता है जिस पर आप कस्टम व्यू भी सेट कर सकते हैं। फिर मैं मानता हूं कि आपको सही पृष्ठभूमि छवि के साथ सही दृश्य बनाना है और इसी तरह, लेकिन यह "व्यवहार्य" है, और सार्वजनिक एपीआई के साथ। – yonel
बेशक यदि आप किसी दूसरे प्रश्न का उत्तर देते हैं तो आप नीचे आ जाएंगे। आपका उत्तर इस प्रश्न के लिए ठीक होगा: http://stackoverflow.com/questions/599405/iphone-navigation-bar-title-text-color –
for (id subView in theNavigationBar.subviews) {
if ([subView isKindOfClass:[UIButton class]]) {
[(UIButton *)subView setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[(UIButton *)subView setTitleShadowColor:[UIColor clearColor] forState:UIControlStateNormal];
}
}
अनुकूलित करेंगे
आप नेविगेशन बार में लेबल जोड़कर शीर्षक उपस्थिति को बदल सकते हैं।
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 35)];
label.backgroundColor = [UIColor clearColor];
label.textAlignment = UITextAlignmentCenter;
label.textColor =[UIColor whiteColor];
label.text=self.title;
self.navigationItem.titleView = viewLabel;
[label release];
- 1. uinavigationbar बैक बटन टेक्स्ट को कैसे बदलें
- 2. UISegmentedControl एक UINavigationBar/आइटम
- 3. चयनित टेक्स्ट रंग कैसे बदलें?
- 4. नोटपैड ++ टेक्स्ट रंग बदलें?
- 5. सूची बदलें कैसे बदलें टेक्स्ट रंग
- 6. UINavigationBar फ़ॉन्ट गुण बदलें?
- 7. टेक्स्ट फ़ील्ड पर साफ़ बटन रंग
- 8. सीएसएस में होवर पर टेक्स्ट व्यू में टेक्स्ट का रंग कैसे बदलें?
- 9. UINavigationBar डिफ़ॉल्ट रंग
- 10. समूह बॉक्स टेक्स्ट रंग बदलें?
- 11. वरीयता बदलें सक्रियता टेक्स्ट रंग
- 12. टेक्स्ट फ़ील्ड में टेक्स्ट रंग बदलें
- 13. फेसबुक की तरह बटन - फ़ॉन्ट रंग बदलें?
- 14. टॉगल बटन का रंग कैसे बदलें?
- 15. UINavigationBar
- 16. Tkinter में टेक्स्ट कर्सर रंग कैसे बदलें?
- 17. जांचने पर System.Windows.Forms.ToolStrip बटन हाइलाइट/पृष्ठभूमि रंग कैसे बदलें?
- 18. पंक्ति चयन पर NSTextField टेक्स्ट रंग कैसे बदलें?
- 19. UINavigationBar
- 20. दबाए गए बटन टेक्स्ट रंग
- 21. Android पर बटन और टेक्स्ट रंग को गतिशील रूप से कैसे बदलें
- 22. UINavigationBar बैक बटन के शीर्षक को "बैक"
- 23. UINavigationBar
- 24. "संपादन टेक्स्ट" विजेट के भीतर टेक्स्ट रंग का हिस्सा बदलें
- 25. UIButton UINavigationbar बटन
- 26. QListWidget में आइटम्स का टेक्स्ट रंग कैसे बदलें?
- 27. UINavigationBar
- 28. UINavigationBar शीर्षक लेबल टेक्स्ट
- 29. नेविगेशन आइटम (बार) का पृष्ठभूमि रंग बदलें
- 30. सी # एक बटन की पृष्ठभूमि बदलें रंग
यह व्यक्तिगत UIBarButtonItem (ओं) पर भी लागू किया जा सकता है। बार के वास्तविक बटन के लिए आप लिख सकते हैं: [बटन setTitleTextAttributes: टेक्स्ट एट्रिब्यूट्स के लिए स्टेटस: UIControlStateNormal]; –