वर्ष प्रतिक्रिया अपडेट किया गया, कि केवल मास्क
autolayout (आईओएस 6)
आकार बदलने iOS 6 में उल्लेख किया है, autolayout भी जुड़ गया, यद्यपि, थोड़े बदसूरत एक स्टोरीबोर्ड/xib में XCode के साथ काम करने के लिए। Autolayout व्याख्या करने के लिए रास्ता बहुत बड़ा है, लेकिन इसका सार यह है कि यह पदानुक्रम के भीतर विचारों के बीच नियमों का एक सेट है। इस प्रकार, आप एक दृश्य की एक्स स्थिति को मूल दृश्य की दाएं सीमा पर चिपका सकते हैं। Auto Layout Programming Guide
autoresizing मास्क (आईओएस 2)
देखें आकार निरीक्षक में विकल्पों पर एक नजर डालें:
![Autoresizing and positioning inside a view](https://i.stack.imgur.com/oRdsC.png)
यह
myView.autoresizingMask = UIViewAutoresizingMaskFlexibleTopMargin |
UIViewAutoresizingMaskFlexibleLeftMargin |
UIViewAutoresizingMaskFlexibleWidth |
UIViewAutoresizingMaskFlexibleHeight;
कर के बराबर है ध्यान दें कि कोड द्वारा इसे करने और आईबी के माध्यम से ऐसा करने में अंतर है। सीमाओं के लिए आईबी ऑटोरेसीकरण सेटिंग्स स्ट्रैट्स के रूप में काम करती है, सही का चयन करने के लिए, उदाहरण के लिए, "मेरा दायां सीमा अब पर्यवेक्षक की दाएं सीमा पर फंस गई है"।
दूसरी तरफ, कोड विपरीत है, जहां आपको यह निर्दिष्ट करने की आवश्यकता है कि कौन सी सीमाएं स्ट्रैट-एड नहीं हैं, उर्फ। वे लचीले हैं। ऊंचाई और चौड़ाई सामान्य रूप से काम करता है।
लेआउट subviews (आईओएस 2, लेकिन के लिए iOS5 + gotchas)
सब कुछ विफल रहता है,, हर जगह मैन्युअल स्थिति निर्धारण कर मैं उस स्थिति में किया गया है, और यह सिर्फ unmaintanable की ओर जाता है शुरू नहीं करते हैं, स्पेगेटी कोड, जहां एक ही दृश्य गुणों के साथ तीन या अधिक विधियां गड़बड़ कर रही हैं।
इसके बजाय, UIView -layoutSubviews
पर अपनी सभी कस्टम स्थिति को करना पसंद करते हैं। इस विधि को आवश्यकतानुसार कहा जाता है जब setNeedsLayout
ट्रिगर किया गया है, उदाहरण के लिए, जब चौड़ाई दृश्य बदलती है, तो सबव्यूज़ लेआउट सबव्यूज़ ईवेंट प्राप्त करते हैं। घूर्णन इंटरफेस को भी बहुत आसान बनाता है, क्योंकि इस विधि को नई चौड़ाई के लिए बुलाया जाता है, यह निर्धारित करने के लिए कि एनीमेशन कैसा दिखता है।
ध्यान रखें कि लेआउट सबव्यू ऑटो ऑटो लेआउट/ऑटो-रीसाइजिंग मास्क के बाद काम करता है।
आप 'autoresizingMask' उचित रूप से अपने बच्चे को' UIView' पर क्यों निर्धारित नहीं कर सकते? आखिरकार, यदि आप इसे किसी अन्य दृश्य के बच्चे बनाते हैं तो यह एक सबव्यूव है! –
उत्तर के लिए धन्यवाद। मैंने इसे सबव्यूव में किया: – androidkc
[स्वयं सेटऑटोरोसिंगमास्क: UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin]; लेकिन लगता है कि काम नहीं करता है। – androidkc