आधुनिक दृष्टिकोण
संपूर्ण नेविगेशन कंट्रोलर के लिए आधुनिक तरीका ... एक बार ऐसा करें, जब आपके नेविगेशन कंट्रोलर का रूट दृश्य लोड हो।
[self.navigationController.navigationBar setTitleTextAttributes:
@{NSForegroundColorAttributeName:[UIColor yellowColor]}];
हालाँकि, बाद के विचारों में इसका प्रभाव नहीं दिखता है।
क्लासिक दृष्टिकोण
पुराना तरीका, प्रति दृश्य नियंत्रक (ये स्थिरांक iOS 6 के लिए हैं, लेकिन यदि आप इसे iOS 7 उपस्थिति पर प्रति दृश्य नियंत्रक के अनुसार करना चाहते हैं, तो आप एक ही दृष्टिकोण चाहते हैं, लेकिन विभिन्न स्थिरांक के साथ):
आप एक उपयोग करने की आवश्यकता UILabel
के रूप में titleView
की navigationItem
।
लेबल चाहिए:
- एक स्पष्ट पृष्ठभूमि रंग (
label.backgroundColor = [UIColor clearColor]
) है।
- बोल्ड 20pt सिस्टम फ़ॉन्ट (
label.font = [UIFont boldSystemFontOfSize: 20.0f]
) का उपयोग करें ।
- 50% अल्फा (
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]
) के साथ काले रंग की छाया रखें ।
- आप करने के साथ ही केंद्रित (पाठ संरेखण सेट करना चाहेंगे
label.textAlignment = NSTextAlignmentCenter
( UITextAlignmentCenter
पुराने SDK का)।
लेबल टेक्स्ट रंग सेट करें जो भी कस्टम रंग आप चाहते हैं। आप ऐसा रंग चाहते हैं जिससे टेक्स्ट छाया में न जाए, जिसे पढ़ना मुश्किल होगा।
मैंने इसे परीक्षण और त्रुटि के माध्यम से काम किया, लेकिन मैं जिन मूल्यों के साथ आया था, वे अंततः उनके लिए बहुत सरल हैं कि Apple ने क्या नहीं चुना। :)
आप इस की पुष्टि करना चाहते हैं, इस कोड ड्रॉप initWithNibName:bundle:
में PageThreeViewController.m
की एप्पल के NavBar नमूना । यह पाठ को पीले लेबल के साथ बदल देगा। यह रंग को छोड़कर, Apple के कोड द्वारा निर्मित मूल से अप्रभेद्य होना चाहिए।
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
// this will appear as the title in the navigation bar
UILabel *label = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:20.0];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = NSTextAlignmentCenter;
// ^-Use UITextAlignmentCenter for older SDKs.
label.textColor = [UIColor yellowColor]; // change this color
self.navigationItem.titleView = label;
label.text = NSLocalizedString(@"PageThreeTitle", @"");
[label sizeToFit];
}
return self;
}
संपादित करें: इसके अलावा, एरिक बी का जवाब नीचे पढ़ें। मेरा कोड प्रभाव दिखाता है, लेकिन उसका कोड मौजूदा दृश्य नियंत्रक पर इसे गिराने का एक सरल तरीका प्रदान करता है।