Xcode 6 एक नई सुविधा जहां है फोंट और फ़ॉन्ट आकार में UILabel
, UITextField
और UIButton
स्वचालित रूप से वर्तमान युक्ति विन्यास के आकार वर्ग के आधार पर स्थापित किया जा सकता है, है ना स्टोरीबोर्ड में। उदाहरण के लिए, आप UILabel
"किसी भी चौड़ाई, कॉम्पैक्ट ऊंचाई" (जैसे कि परिदृश्य में iPhones पर) कॉन्फ़िगरेशन और "नियमित चौड़ाई, नियमित ऊंचाई" कॉन्फ़िगरेशन (जैसे iPads पर ) का आकार 18 पर फ़ॉन्ट आकार 12 का उपयोग करने के लिए सेट कर सकते हैं । यहां अधिक जानकारी उपलब्ध है:
developer.apple.com/size_class
यह सिद्धांत में एक महान विशेषता है क्योंकि यह डिवाइस कॉन्फ़िगरेशन के आधार पर यूआई सुविधाओं पर अलग-अलग फोंट को प्रोग्रामेटिक रूप से सेट करने के लिए अनावश्यक बना सकता है। अभी, मेरे पास कुछ सशर्त कोड हैं जो डिवाइस प्रकार के आधार पर फोंट सेट करते हैं, लेकिन जाहिर है, इसका मतलब है कि मुझे पूरे ऐप में हर जगह प्रोग्राम सेट करना होगा। इसलिए मैं शुरू में इस सुविधा के बारे में वास्तव में उत्साहित था, लेकिन मैंने पाया कि यह मेरे लिए वास्तविक उपयोग (शायद एक बग) की गंभीर समस्या है। ध्यान दें कि मैं एसडीके 8 के खिलाफ निर्माण कर रहा हूं और आईओएस 8 का न्यूनतम तैनाती लक्ष्य निर्धारित कर रहा हूं , इसलिए इसका आईओएस के पुराने संस्करणों के साथ संगतता के साथ कोई लेना-देना नहीं है।
समस्या यह है: यदि मैंने विभिन्न आकार वर्गों के लिए अलग-अलग फ़ॉन्ट आकार निर्धारित किए हैं और iOS द्वारा प्रदान किए गए "सिस्टम" फ़ॉन्ट का उपयोग करते हैं , तो सब कुछ अपेक्षा के अनुसार काम करता है, और आकार वर्ग के आधार पर फ़ॉन्ट आकार बदल जाता है। यदि मैं अपने एप्लिकेशन द्वारा आपूर्ति किए गए कस्टम फ़ॉन्ट का उपयोग करता हूं (हां, मैंने इसे अपने एप्लिकेशन बंडल में सही ढंग से सेट किया है, क्योंकि यह प्रोग्रामेटिक रूप से काम करता है) और कस्टम फ़ॉन्ट को XCode 6 स्टोरीबोर्ड में एक लेबल पर सेट करता है, जो अपेक्षित रूप से भी काम करता है। लेकिन जब मैं स्टोरीबोर्ड में विभिन्न आकार वर्गों के लिए कस्टम फ़ॉन्ट के विभिन्न आकारों का उपयोग करने की कोशिश करता हूं, तो यह अचानक काम नहीं करता है। कॉन्फ़िगरेशन में एकमात्र अंतर वह फ़ॉन्ट है जिसे मैंने चुना है (एक कस्टम बनाम सिस्टम फ़ॉन्ट)। इसके बजाय, सभी फोंट पर दिखाई देते हैंडिवाइस और सिम्युलेटर के रूप में डिफ़ॉल्ट सिस्टम फ़ॉन्ट में डिफ़ॉल्ट आकार , आकार वर्ग की परवाह किए बिना (और मैं डिबगर है कि यह स्टोरीबोर्ड में निर्दिष्ट वास्तविक एक के लिए सिस्टम फ़ॉन्ट प्रतिस्थापन है के माध्यम से सत्यापित)। तो मूल रूप से, कस्टम फोंट के लिए आकार वर्ग की सुविधा टूटी हुई प्रतीत होती है। इसके अलावा, दिलचस्प बात यह है कि कस्टम फोंट वास्तव में XCode 6 "पूर्वावलोकन" फलक में आकार को ठीक से प्रदर्शित और समायोजित करते हैं, दृश्य नियंत्रक के लिए: यह केवल वास्तविक iOS सिस्टम पर चलने पर काम करना बंद कर देता है (जो मुझे लगता है कि मैं इसे सही तरीके से कॉन्फ़िगर कर रहा हूं) ।
मैंने कई अलग-अलग कस्टम फोंट की कोशिश की, और यह उनमें से किसी के लिए भी काम नहीं करता है, लेकिन यह हमेशा काम करता है अगर मैं इसके बजाय "सिस्टम" का उपयोग करता हूं।
वैसे भी, किसी और को Xcode 6 में इस समस्या को देखा है ?
यह iOS 8, Xcode, या कुछ में बग है या नहीं, इस पर कोई विचार
क्या मैं गलत कर रहा हूँ?
जैसा कि मैंने कहा, केवल एक ही समाधान मुझे मिला है, जैसे कि मैं iOS के लगभग तीन संस्करणों के लिए प्रोग्रामेटिक रूप से सेट करना जारी रखता हूं क्योंकि यह काम करता है।
लेकिन अगर मुझे यह कस्टम फोंट के साथ काम करने के लिए मिल सकता है तो मैं इस सुविधा का उपयोग करने में सक्षम होना पसंद करूंगा। सिस्टम फ़ॉन्ट का उपयोग करना हमारे डिजाइन के लिए स्वीकार्य नहीं है।
अतिरिक्त जानकारी: Xcode 8.0 के रूप में, बग को ठीक किया गया है।