Xcode 8 में? Vary for Traits ’क्या है?


86

मैं AutoLayout और आकार वर्गों का उपयोग कर रहा हूं, लेकिन iOS 10 और नए Xcode 8.0 की रिलीज़ के साथ, एक नया विकल्प है Vary for Traits। क्या यह अलग-अलग चौड़ाई और उपकरणों की ऊंचाई के लिए साइज क्लैसे का प्रतिस्थापन है।

यहाँ छवि विवरण दर्ज करें

widthचेकबॉक्स के चयन से , यह प्रदर्शित करता है varying 14 compact width devices

यहाँ छवि विवरण दर्ज करें

heightचेकबॉक्स के चयन से , यह प्रदर्शित करता है varying 18 compact height devices

यहाँ छवि विवरण दर्ज करें

दोनों चेकबॉक्स के चयन से, यह प्रदर्शित करता है varying 11 compact width regular height devices

यहाँ छवि विवरण दर्ज करें

इस विकल्प का उपयोग कैसे करें? क्या हम Xcode7.0 की तरह आकार की कक्षाओं के साथ AutoLayout का उपयोग कर सकते हैं? अगर किसी को गहराई से ज्ञान है तो कृपया उसे समझाएं।


डब्ल्यूडब्ल्यूडीसी 2016 सत्र वीडियो पर एक नजर है। मुझे यकीन है कि "Xcode की नई विशेषताओं" के रूप में कहीं कवर किया गया था।
मार्टिन आर

जवाबों:


133

यह सिर्फ iPad और iPhones के लिए विभिन्न लेआउट जोड़ने के लिए अपनी परियोजना में "वैरी ट्रेट्स" का उपयोग करने के तरीके के रूप में एक विस्तार है।

आकार वर्गों पर अधिक समझने के लिए कृपया इसे पढ़ें।

https://developer.apple.com/reference/uikit/uitraitcollection

यहाँ छवि विवरण दर्ज करें

यदि आप नीचे दिए गए उदाहरण को छोड़ रहे हैं, तो अंत में सारांश पढ़ें।


  • उद्देश्य :

आपको iPhone और iPad में विभिन्न चौड़ाई वाले बटन की आवश्यकता होती है। पूर्व में 80 की चौड़ाई और बाद में 300 की चौड़ाई है।

  • विधि 1:

कई बाधाओं के साथ स्थापित के रूप में लक्षण के लिए भिन्न।

  • कदम :

    1. क्षैतिज और लंबवत रूप से बटन की तरह पहले आम बाधाओं को जोड़ें।

यहाँ छवि विवरण दर्ज करें

  1. VaryForTraits चुनें और iPhone स्क्रीन के लिए आकार वर्ग दिशानिर्देशों के अनुसार, C * R आकार वर्ग मॉडल फिट बैठता है और यह हम पॉपअप में चौड़ाई और ऊँचाई के टिकमार्क की जांच करते हैं। स्क्रीन पर कहीं भी क्लिक करके पॉप-अप को खारिज करें।

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

  1. चौड़ाई को निरंतर जोड़ें और जांचें कि C * R आकार-वर्ग के लिए बाधा जोड़ी गई है या नहीं। बाधाओं को जोड़ने के बाद, Done Varying बटन चुनें।

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

  1. IPad स्क्रीन के लिए, फिर से किसी भी iPad डिवाइस का चयन करें और VaryForTraits चुनें और इस बार ऊंचाई-चौड़ाई पर क्लिक करने पर, इसे R * R भिन्नता दिखनी चाहिए।

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

  1. एक चौड़ाई की बाधा जोड़ने के बाद, अंतिम जोड़े गए iPhone चौड़ाई बाधा को स्क्रीनशॉट में अनहेल्दी होना चाहिए। जोड़ा गया मूल्य इस बार आकार-वर्ग R * R के लिए होगा।

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

  1. IPhone लेआउट पर वापस जाएं और इसमें चौड़ाई के रूप में 80 और iPad में 300 लगेंगे।

यहाँ छवि विवरण दर्ज करें

निष्कर्ष:

कृपया ध्यान दें कि कुल दो अवरोध जोड़े गए हैं और दोनों बाधाओं में, मान आकार-वर्ग के अनुसार अलग-अलग हैं।


  • विधि 2:

एकल बाधा के साथ लक्षण के लिए भिन्न, एकाधिक आकार-वर्ग स्थापित

  • कदम :
    1. सामान्य चौड़ाई की बाधा जोड़ें। फिर उस बाधा का चयन करें और लगातार मान के अलावा + बटन चुनें।

यहाँ छवि विवरण दर्ज करें

  1. विशेषता भिन्नता जोड़ें, और iPhone के लिए हम C * R चुनते हैं और 100 के रूप में स्थिर मान सेट करते हैं।

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

  1. फिर से iPad के लिए जो R * R के रूप में एक विशेषता भिन्नता का अनुसरण करता है, हम फिर से + बटन पर क्लिक करके एक और भिन्नता जोड़ते हैं और मान को 300 के रूप में सेट करते हैं।

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

  1. एक iPad का चयन करें और चौड़ाई स्वचालित रूप से 300 के रूप में ले ली जाएगी और iPhone पर वापस आने पर यह मान के रूप में 100 हो जाएगा।

यहाँ छवि विवरण दर्ज करें

निष्कर्ष:

यह दो बाधाओं को जोड़ने के बजाय एक बेहतर विकल्प लगता है जब एक ही बाधा की आवश्यकता होती है और निरंतर मूल्य भिन्न होता है।

जब उपयोग करने के लिए, क्या उपयोग करने के लिए:

दोनों दृष्टिकोण मूल रूप से एक ही काम कर रहे हैं, आकार-वर्गों के लिए मान सेट कर रहे हैं।

लेकिन, # Method1 का उपयोग तब किया जाता है जब आप किसी उपकरण के लिए विशेष रूप से एक बाधा जोड़ना चाहते हैं या आकार-वर्ग कहते हैं। उदाहरण के लिए, iPhone में बटन टॉप 50 पीएस से होना चाहिए और आईपैड में यह क्षैतिज और लंबवत रूप से केंद्रित होना चाहिए। ऐसी स्थितियों में, आपको VaryForTraits का उपयोग करने की आवश्यकता है क्योंकि यह एक विशिष्ट आकार वर्ग के लिए बाधाओं को जोड़ने के लिए दरवाजे खोलता है।

# Method2 का उपयोग तब किया जाता है जब आप एक ही बाधा प्रकार के लिए अलग-अलग निरंतर मान चाहते हैं।

पुनश्च: सभी के लिए जो अतिरिक्त काम पाने के लिए पर्याप्त नहीं हैं

कृपया सुनिश्चित करें कि आप इंस्टॉल किए गए अनुसार केवल आवश्यक बाधाओं को जोड़ रहे हैं। इंस्टॉल किए गए के खिलाफ चेकबॉक्स को केवल उस बाधा के लिए दिखाई देना चाहिए जिसे आपको आकार वर्ग के लिए आवश्यक है। यही कुंजी है!

यहाँ छवि विवरण दर्ज करें

बस एक शीर्ष बाधा और एक दृश्य में एक uiButton के लिए एक प्रमुख जोड़ें। शीर्ष बाधा का चयन करें और प्लस साइन के साथ मूल इंस्टॉल किए गए विकल्प को अनचेक करें। अब, प्लस चिह्न पर क्लिक करके, सी आर में भिन्नता जोड़ें और उस विकल्प की जांच करें। अब, विभिन्न अभिविन्यास संयोजनों के साथ iPhone से iPad के लिए डिवाइस बदलें। यह बाधा केवल C R आकार वर्ग के लिए लागू की जाएगी जो पोर्ट्रेट ओरिएंटेशन में iPhone है। अगर मूल संस्थापित (प्लस सिंबल वाला) चेकबॉक्स चेक किया गया था, तो इसका मतलब है कि बाधा सभी आकार वर्गों पर लागू की जानी चाहिए।

सारांश :

Trait भिन्नता आपके उपयोगकर्ता इंटरफ़ेस की प्रस्तुति के लिए एक परिवर्तन है जो एक डिवाइस कॉन्फ़िगरेशन पर आधारित है। उपयोगकर्ता इंटरफ़ेस की विशेषता भिन्नता केवल बाधाओं तक सीमित नहीं है, बल्कि इसे बहुत अधिक लागू किया जा सकता है। जैसे कि डिवाइस के डार्क स्टाइल में सेट होने पर बैकग्राउंड और अन्य तत्वों का रंग बदलना। एक भिन्नता उपयोगकर्ता इंटरफ़ेस के एक तत्व पर लागू हो सकती है, जैसे एक बाधा को हटाने, या एक दृश्य वर्ग या बाधा की संपत्ति के लिए, जैसे कि लेबल के लिए फ़ॉन्ट। आप अलग-अलग हो सकते हैं:

  • किसी दृश्य का आकार या स्थिति

  • एक दृश्य की स्थापना

  • एक बाधा की स्थापना

  • बाधा निरंतर

  • फ़ॉन्ट

  • फ़ॉन्ट, टिंट या पृष्ठभूमि के लिए रंग

  • लेआउट मार्जिन

  • छवि फ़ाइल

आपके द्वारा भिन्न किए जा सकने वाले गुणों का विशिष्ट सेट तत्व के वर्ग पर निर्भर करता है। उदाहरण में, हमने एक स्थिरांक और स्थिरांक स्थापन की स्थापना के उपयोग का प्रदर्शन किया है। दूसरों, काफी सरल हैं और आसानी से अनुमान लगाया जा सकता है।


51
यह मेरे लिए काम नहीं कर रहा है .. यह सभी स्क्रीन आकारों पर बाधाओं को अद्यतन करता है और व्यावहारिक रूप से कुछ भी नहीं होता है ...
Dan

5
यदि यह काम नहीं करता है, तो इसे पढ़ने की कोशिश करें: help.apple.com/xcode/mac/8.0/#/devba3dd0551 । यदि आप फ़ॉन्ट या अन्य संपत्ति को अनुकूलित करना चाहते हैं, तो "+" पर क्लिक करें जो गुण फलक में बाईं ओर स्थित है। उदाहरण के लिए, चौड़ाई के आधार पर, आप iPhone 4s और iPhone 7 Plus के लिए लक्षण भिन्न नहीं कर सकते, क्योंकि वे दोनों कॉम्पैक्ट चौड़ाई हैं। आप उन्हें iPhone और iPad के लिए अलग-अलग कर सकते हैं।
डेनिस कुतलुबाएव

2
मेरे लिए काम किया thnx :)
सलमान

1
पुराने बाधा को हटाने के बाद मेरे लिए इसने काम किया और इसके मूल्य को बदलने के बजाय एक नया जोड़ा।
तियोदोर सियारु

2
जो लोग कहते हैं कि यह काम नहीं कर रहा है। मुझे लगता है कि आप उन सभी अवरोधों को बदलने की कोशिश कर रहे हैं जो आप केवल एक बाधा में निरंतर मूल्य रख सकते हैं जो आप वास्तव में बाधा के कई या अन्य गुणों को नहीं बदल सकते हैं। मैं भी इस हिस्से पर उलझन में था।
३३६६।'४

21

लक्षणों के लिए भिन्न आकार वर्गों के विकल्प का विकास है जो Xcode के पिछले संस्करण में मौजूद था। यह लक्षणों के आधार पर बहुत अधिक शून्य और सटीक भिन्नता की अनुमति देता है। बेशक, यह केवल iPad / iPhone तक ही सीमित नहीं है, बल्कि आप अभिविन्यास और विभिन्न डिवाइस के आधार पर भिन्नता भी निर्दिष्ट कर सकते हैं।

इस सूत्र में अन्य उत्तरों में कुछ कमी और अशुद्धि है, शायद उत्तर देने का सबसे कुशल तरीका एक उदाहरण बनाना है। स्पष्टता के लिए हम अपने उदाहरण को केवल एक बटन और दो लेआउट तक सीमित करेंगे। हालांकि, जैसा कि नीचे बताया गया है, आप अपनी इच्छानुसार निम्नलिखित उदाहरण का विस्तार कर सकते हैं। हमारा लक्ष्य दो अलग-अलग लेआउट के बीच एक बटन की स्थिति को समायोजित करना है: सभी उपकरणों पर परिदृश्य और चित्र।

नोट: यदि "लक्षणों के लिए भिन्न" विकल्प को सक्षम नहीं किया गया है, तो सभी लेआउट और यूआई इंटरफ़ेस समायोजन सभी लक्षणों (जैसे। सभी आकार वर्ग) को संदर्भित किया जाता है।

चित्र .1

आइए हमारे स्टोरीबोर्ड पर एक बटन लगाकर शुरू करें। चूंकि "लक्षणों के लिए भिन्न" सक्षम नहीं है, इसलिए बटन सभी विभिन्न लेआउट में मौजूद होगा। यदि, इसके बजाय, हमने लक्षणों के लिए अलग-अलग सक्षम किया है तो बटन केवल चयनित विशेष विशेषता के लिए भेजा जाएगा।

रेखा चित्र नम्बर 2

अब, "विशेषता के लिए भिन्नता" को सक्षम करें और ऊँचाई के आधार पर भिन्नता चुनें। आपको देखना चाहिए कि नीचे की स्क्रीन नीले रंग में बदल जाएगी और चयन के अनुसार आप सभी डिवाइस को प्रभावित देखेंगे। अब तक सब ठीक है।

fig3

फिर से बटन का चयन करें और सामान्य रूप से बाधाओं को जोड़ें। हमारे उदाहरण में, हम शीर्ष और बाएं अग्रणी स्थान के साथ-साथ चौड़ाई और ऊंचाई जोड़ देंगे। उसके बाद, “Done Varying” पर क्लिक करें। आप देखेंगे कि स्क्रीन का निचला हिस्सा फिर से ग्रे हो जाएगा। क्या हो रहा है कि हमने इंटरफ़ेस बिल्डर को केवल (w: C h: R) वर्गों के लिए उपरोक्त बाधाओं को जोड़ने के लिए कहा है।

fig4

अब स्क्रीन के नीचे परिदृश्य मोड का चयन करें। आप देखेंगे कि बटन लाल रंग में है, क्योंकि इसमें उन बाधाओं का अभाव है जो आपने केवल कुछ लक्षणों के लिए जोड़े हैं। लक्षण के लिए फिर से भिन्न का चयन करें और फिर से ऊंचाई भिन्नता का चयन करें। निम्नलिखित बाधाओं को जोड़ें:

fig5

और प्रेस अलग-अलग किया। अब बटन को परिदृश्य और चित्र दोनों के लिए स्क्रीन पर अच्छी तरह से पहचाना गया है।

fig6

बनाएँ और चलाएँ। आप देखेंगे कि स्क्रीन के उन्मुखीकरण के अनुसार बटन बदल जाएगा।

आप इस पैटर्न के बाद अधिक उन्नत लेआउट बना सकते हैं। उदाहरण के लिए, आप शुरुआत में लक्षण के लिए एक भिन्न का चयन कर सकते हैं और केवल विशिष्ट विशेषता के लिए UIKit ऑब्जेक्ट को छोड़ सकते हैं। यह ऑब्जेक्ट केवल निर्दिष्ट वेरिएंट में मौजूद होगा और दूसरों पर एक नज़र डाली जाएगी, जिससे आप लक्षण के आधार पर पूरी तरह से अलग उपयोगकर्ता इंटरफ़ेस बना सकते हैं।


3
मैंने (wC, hR) वर्ग के लिए बाधाओं को जोड़ा है तो मैंने अलग-अलग काम किया है। जब मैं खोलता हूं (wR, hR) तो मैं भी पुरानी बाधाओं को देख रहा हूं। इस वर्ग के लिए (wR, hR) नए अवरोध कैसे बनाएं। कृपया मुझे बताएं @valvolin
रामचरण रेड्डी

9

यह कुछ भी नहीं है, लेकिन size classesयह अलग प्रतिनिधित्व के साथ स्वयं है। जब तक xcode 7हम आकार वर्गों का इस्तेमाल किया और हम इस पर विचार height-widthमें regular,compact and anyतरीके से vary for traitsअवधारणा एक ही है, लेकिन विशेष रूप से xcode समझाने exact device। पुराने संस्करण में हम जानते हैं कि for every iphone in portraintइस तरह की जानकारी आदि जहाँ हम सटीक डिवाइस को जान सकते हैं!

नीचे स्क्रीन शॉट्स की जाँच करें,

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

अधिक जानकारी के लिए आपको wwdc2016 - वीडियो देखना चाहिए !

संदर्भ: यह सो पोस्ट


ठीक है, मुझे WWDC वीडियो की जांच करने दें।
टेक्नीकेड

आप इसके कुछ भी नहीं लेकिन आकार वर्गों के विकास के लिए सही हैं
दुरई अमुथन।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.