2011-01-15 23 views
6

मैं UINavigationBar में कस्टम फ़ॉन्ट कैसे सेट कर सकता हूं? मुझे ताहोमा फ़ॉन्ट चाहिए।मैं UINavigationBar में कस्टम फ़ॉन्ट कैसे सेट कर सकता हूं?

- (void)viewDidLoad{ 
    self.title [email protected]"My text"; 
} 

alt text

+1

Tahoma फ़ॉन्ट माइक्रोसॉफ्ट द्वारा स्वामित्व में है। एक बार जब आप चीजों के लाइसेंसिंग पक्ष को हल कर देते हैं तो हमें बताएं और हम कोडिंग के साथ आपकी सहायता करेंगे। :-) –

+0

लेकिन आईफोन में ताहोमा फ़ॉन्ट बनाया गया है। मुझे किसी भी लाइसेंस की ज़रूरत है। – Voloda2

+2

ताहोमा अंतर्निहित फ़ॉन्ट्स में से एक नहीं है – grahamparks

उत्तर

21

पूरी तरह से संभव है, अगर एक छोटे से मुश्किल करना है। एक बार जब आपको आवश्यक फ़ॉन्ट मिल जाए (या तो आईओएस के साथ पहले से भेजे गए विकल्पों में से एक, या एक टीटीएफ फ़ाइल जिसे आपने सही लाइसेंसिंग प्राप्त किया है), बस आकार, स्वरूपण, फ़ॉन्ट इत्यादि के साथ एक UILabel बनाएं और फिर जोड़ें यह उस बार के लिए नेविगेशन आइटम पर (या, यदि आप इसे व्यू कंट्रोलर में कर रहे हैं, तो उस नियंत्रक के .navigationItem.titleView को अपने लेबल पर सेट करें)।

उदाहरण के लिए, मेरे पास एक UINavigationController के अंदर एक व्यू कंट्रोलर है। शीर्ष में लेबल को कस्टम फ़ॉन्ट में बदलने के लिए, मैं बस करता हूं:

//...I have already setup a UILabel called navLabel that has the same style as a 
// default navigation bar title, but I've changed the .font property to my custom font 
self.navigationItem.titleView = navLabel; 
[navLabel release]; 
+0

आप उत्तर को संपादित कर सकते हैं ताकि यह उपलब्ध फ़ॉन्ट्स की सूची [यह एक] (http://daringfireball.net/misc/2007/07/iphone-osx-fonts);) –

+1

या [यह एक ] (http://iosfonts.com)। –

17

यह कोड काम करना चाहिए।

- (void)viewDidLoad 
{ 
     [super viewDidLoad]; 

     int height = navigationController.navigationBar.frame.size.height; 
     int width = navigationController.navigationBar.frame.size.width; 

     UILabel *navLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, height)]; 
     navLabel.backgroundColor = [UIColor clearColor]; 
     navLabel.textColor = [UIColor whiteColor]; 
     navLabel.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]; 
     navLabel.font = [UIFont boldSystemFontOfSize:15]; 
     navLabel.textAlignment = UITextAlignmentCenter; 
     self.navigationItem.titleView = navLabel; 
     [navLabel release]; 
} 

ध्यान दें कि कस्टम दृश्य जिसके परिणामस्वरूप पारदर्शी पृष्ठभूमि है, ताकि आप [navigationController.navigationBar addSubview: दृश्य] के साथ अपने नेविगेशन पट्टी करने के लिए कुछ और जोड़ सकते हैं: UIViewController जो अपने मुख्य ui प्रस्तुत करता है। यह बार के बाएं कोने में या कुछ और स्पिनर हो सकता है।

यदि आप कस्टम व्यू का उपयोग करते हैं, तो आप अब शीर्षक को uiviewcontroller शीर्षक के साथ सेट करने में सक्षम नहीं होंगे। आपको अपने कस्टम व्यू द्वारा उपलब्ध तरीके का उपयोग करने की आवश्यकता है।

उदाहरण:

((UILabel *)self.navigationItem.titleView).text = title; 
संबंधित मुद्दे