2017-07-17 17 views
6

स्विफ्ट से 4 को अद्यतन करने के बाद, मैं एक संकलक त्रुटि हो रही है ।UIAppearance स्विफ्ट 4

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 

    // compiler error on line below 
    UIAppearance.appearance().setTitleTextAttributes([NSAttributedStringKey.font: font], for: UIControlState.normal) 
} 

मुझे इसे ठीक करने में समस्या हो रही है, किसी भी मार्गदर्शन की सराहना की जाएगी, धन्यवाद!

+0

वह कोड क्या करना चाहिए? आमतौर पर उपस्थिति एक ठोस यूआई कक्षा के लिए सेट है, उदाहरण के लिए 'UIBarItem.appearance()। SetTitleTextAttributes ...' –

+0

मैं इस प्रश्न में अधिक संदर्भ प्रदान करूंगा। यह एक कस्टम टैब बार नियंत्रक वर्ग है, मैं बार आइटम का फ़ॉन्ट बदल रहा हूं। –

+0

आपको यूआई कक्षा से कॉल करने की आवश्यकता है, सीधे 'यूआईपीपीरेंस' से नहीं। – dimpiax

उत्तर

7

दाएं - वर्तमान स्विफ्ट 4 रूपांतरण टूल (एक्सकोड 9 बीटा 4 के रूप में) थोड़ा दूर ले जाता है।

मैं UIAppearance रूपांतरण कोड को वापस कर, फिर व्यक्तिगत विशेषताओं को अद्यतन करके समस्या को ठीक करने में सक्षम था।

उदाहरण के लिए, स्विफ्ट 3 में मैं था:

UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.white], for: .selected) 

Xcode मेरे लिए बदल कर "मदद की" बाहर:

UIAppearance.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.white], for: .selected) 

मैं आधा वापस जाकर त्रुटियों को शांत करने में सक्षम था, प्रति:

UITabBarItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.white], for: .selected) 
+0

वही है। माइग्रेटर यूआईएटीएबीबीआईटीएम, यूआईएममेज व्यू इत्यादि के बजाय यूआईपीपीरेंस में टाइप बदल रहा है। – Womble

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