2014-10-09 8 views
11

इसलिए मैं इस ऐप को लिख रहा हूं जिसमें रंगीन नेविगेशनबार और उस बार में शीर्षक का फ़ॉन्ट है और UIBarButtonItems का फ़ॉन्ट सफेद होना चाहिए और एक विशिष्ट फ़ॉन्ट में होना चाहिए। मैं इन 2 लाइनों का इस्तेमाल किया पूरा करने के लिए है कि AppDelegate में ..एक्सकोड 6.1 शीर्षक टेक्स्ट अगला

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName : UIFont(name: "SourceSansPro-Regular", size: 22), NSForegroundColorAttributeName : UIColor.whiteColor()] 
UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName : UIFont(name: "SourceSansPro-Regular", size: 22), NSForegroundColorAttributeName : UIColor.whiteColor()], forState: .Normal) 

लेकिन Xcode 6.1 के साथ मैं इन पंक्तियों में से प्रत्येक में कोई त्रुटि मिलती है और मैं वास्तव में, नहीं पता है कि साधन में ..

enter image description here

टेक्स्ट विशेषताएँ [NSObject: AnyObject] हैं? यही वही है जो मैंने लिखा था .. क्या किसी के पास इसका समाधान है?

उत्तर

37

मुझे लगता है कि समस्या यह है क्योंकि उन्होंने 6.1 में UIFont के प्रारंभकर्ता को बदल दिया है, इसलिए यह nil लौटा सकता है। यह सही व्यवहार है क्योंकि यदि आप गलत फ़ॉन्ट नाम दर्ज करते हैं तो UIFont को तुरंत चालू करने का कोई तरीका नहीं है। इस मामले में आपका शब्दकोश [NSObject: AnyObject?] बन जाता है जो [NSObject: AnyObject] के साथ समान नहीं है। आप पहले फोंट शुरू कर सकते हैं और फिर आप if let सिंटैक्स का उपयोग कर सकते हैं। यहाँ इस

let font = UIFont(name: "SourceSansPro-Regular", size: 22) 
if let font = font { 
    UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName : font, NSForegroundColorAttributeName : UIColor.whiteColor()] 
} 

कैसे करना है या यदि आप यकीन है कि फॉन्ट वस्तु नहीं करने वाला हो nil आप परोक्ष unwrapped वैकल्पिक सिंटैक्स का उपयोग कर सकते है। इस मामले में आप रनटाइम दुर्घटना का खतरा ले रहे हैं। यहां है कि इसे कैसे करना है।

UINavigationBar.appearance().titleTextAttributes = [NSFontAttributeName : UIFont(name: "SourceSansPro-Regular", size: 22)!, NSForegroundColorAttributeName : UIColor.whiteColor()] 
+0

हाँ, यह है! आपका बहुत बहुत धन्यवाद। मुझे लगता है कि यह बहुत भ्रमित है कि एक प्रारंभिक व्यक्ति शून्य वापस कर सकता है लेकिन यह समझ में आता है .. :) – Ben

+0

इसे प्यार करो! –

संबंधित मुद्दे