स्टोरीबोर्ड में ऑटो लेआउट का उपयोग करते समय एक बाधा स्थापित करने के लिए एक विकल्प है या नहीं "इंस्टॉल" चेकबॉक्स के साथ। इसे अक्षम करने से यह व्यवहार हो जाएगा जैसे कि आपने उस बाधा को नहीं जोड़ा - इसका कोई प्रभाव नहीं पड़ेगा। आप इंटरफ़ेस बिल्डर में विभिन्न आकार वर्गों के लिए स्थापित स्थिति को कॉन्फ़िगर कर सकते हैं, और आप active
प्रॉपर्टी को true
या false
पर सेट करके प्रोग्रामेटिक रूप से इस मान को बदल सकते हैं।ऑटो लेआउट बाधा के लिए "स्थापित" कहां बदलें?
मेरे ऐप में मैं जबकि डिवाइस चित्र में है की कोई समस्या ही स्थापित करना चाहते हैं - यह "की स्थापना रद्द" किया जाना चाहिए जब परिदृश्य के लिए घूर्णन। यह किसी भी चौड़ाई कॉम्पैक्ट ऊंचाई के लिए स्थापित अनचेक करके iPhones के लिए पूरा किया जा सकता है। (हालांकि यह काफी सही काम नहीं कर रहा है क्योंकि यह विरोधाभासी बाधाओं के कारण इस बाधा को तोड़ता है जब इसे परिदृश्य में घूमते समय भी स्थापित नहीं किया जाना चाहिए, लेकिन जब भी यूआई हमेशा अपेक्षित दिखाई देता है।) लेकिन अनइंस्टॉल करने का कोई तरीका नहीं है इंटरफ़ेस बिल्डर में परिदृश्य में आईपैड के लिए बाधा (यह दोनों ओरिएंटेशन में नियमित चौड़ाई नियमित ऊंचाई है)।
डिवाइस को घूर्णन करते समय NSLayoutConstraint
एस के लिए active
को सक्षम/अक्षम करने के लिए उचित स्थान कहां है? क्या रोटेशन विधि उस स्थिति को बदलती है वांछित व्यवहार में परिणाम - केवल पोर्ट्रेट के लिए स्थापित किया जा सकता है? यदि ऐप लॉन्च पर उस विधि को नहीं कहा जाता है, तो रोटेशन विधि के अतिरिक्त इसे अन्य विधि में कैसे रखा जाना चाहिए?
मैं viewDidLoad
और viewWillTransitionToSize
में निम्न कोड रखने की कोशिश की है, लेकिन जब आईपैड पर चल रहे इस कुछ अनपेक्षित व्यवहार में परिणाम:
- परिदृश्य में एप्लिकेशन का शुभारंभ कारण बनता बाधा तथ्य सक्रिय होने के बावजूद सक्रिय होने के लिए गलत पर सेट किया गया था, यह बाधा टूट जाता है, और यूआई के रूप में उम्मीद
- प्रकट नहीं होता है का शुभारंभ चित्र में एप्लिकेशन (यह पहले से ही आईबी में स्थापित किया गया था) सच करने के लिए सक्रिय सेट तो यह अपेक्षा के अनुरूप
- काम करता है अनुप्रयोग का शुभारंभ चित्र में और घूर्णन परिदृश्य के लिए उपकरण के रूप में की उम्मीद काम करता है - बाधा निष्क्रिय करने के लिए सेट कर दिया जाता है, यह बाधा नहीं तोड़ता है, यूआई उम्मीद
- चित्र में एप्लिकेशन का शुभारंभ, परिदृश्य के लिए घूर्णन, और वापस चित्र करने के लिए सही प्रकट करने के लिए यूआई का कारण बनता है, लेकिन रूप में प्रकट होता यह इस बाधा को तोड़ता है जो सक्रिय
यदि मैं इंटरफ़ेस बिल्डर में बाधा को अनइंस्टॉल करता हूं तो उपर्युक्त परिदृश्य चलाता हूं, मुझे अनिवार्य रूप से विपरीत व्यवहार मिलता है।
if size.width > size.height {
self.myConstraint.active = false
} else {
self.myConstraint.active = true
}