2013-02-06 69 views
6

मुझे एक स्टोरीबोर्ड मिला है जो ऑटो लेआउट का उपयोग करके बनाया गया है। उस स्टोरीबोर्ड के भीतर, मैं कई स्थानों पर UIViewController सबक्लास (ButtonGridViewController) एम्बेड कर रहा हूं, जिनमें से प्रत्येक एक अलग आकार है। ButtonGridViewController का दृश्य एक xib में परिभाषित किया गया है।आईओएस: ऑटो लेआउट बनाम ऑटोरेसाइजिंगमास्क - भरने के लिए पूरे दृश्य का आकार बदलना?

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

बाधाओं का उपयोग करके मैं वही चीज़ कैसे पूरा करूं? इसके लायक होने के लिए, xib में केवल एक मुख्य दृश्य है, जो आयताकार है, और इसमें 4 सबव्यूव हैं - प्रत्येक बटन - 2x2 ग्रिड में व्यवस्थित है। मैं बटन और अंतराल सहित सबकुछ चाहता हूं, इसे देखने के लिए स्केल और/या खिंचाव के लिए।

धन्यवाद!

+0

आप एम्बेड द्वारा क्या मतलब है? क्या आप कंटेनर विचारों का उपयोग कर रहे हैं? एक मामले में – rdelmar

+0

कंटेनर व्यू; अन्य सभी मामलों में, बस बटनग्रिड व्यू कंट्रोलर को तुरंत चालू करना और मौजूदा दृश्य को मौजूदा यूआईवी व्यू के सबव्यूव के रूप में जोड़ना। – DanM

+0

यदि कोई कारण नहीं है कि आप सभी के लिए कंटेनर दृश्यों का उपयोग नहीं कर सकते हैं, जो इसे बहुत आसान बना देगा। दृश्य स्वचालित रूप से कंटेनर दृश्य में फिट होगा। – rdelmar

उत्तर

10

0 पर एक ही बात superview लिए बाधाओं आप अग्रणी निर्धारित करने की आवश्यकता का उपयोग कर, अनुगामी, ऊपर और नीचे अंतरिक्ष पूरा करने के लिए नीचे देखें:

//load the ButtonGridViewController from a xib 
[[NSBundle mainBundle] loadNibNamed:@"..." owner:self options:nil]; 

//get the view add it 
[self.view addSubView:self.myGridView]; 

//turn off springs and struts 
[self.view setTranslatesAutoresizingMaskIntoConstraints:NO]; 

//add constraints to fill parent view 
NSArray *arr; 

//horizontal constraints 
arr = [NSLayoutConstraint constraintsWithVisualFormat:@"|[vw]|" 
               options:0 
               metrics:nil 
               views:@{@"vw":self.myGridView}]; 
[self.view addConstraints:arr]; 

//vertical constraints 
arr = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[vw]|" 
               options:0 
               metrics:nil 
                views:@{@"vw":self.myGridView}]; 
[self.view addConstraints:arr]; 
+1

वही बात मेरे लिए काम नहीं कर रही है। मेरे पास एक ही परिदृश्य है जहां मैं अपने विचार में एक सबव्यूव जोड़ रहा हूं। दृश्य स्टोरीबोर्ड में है और सब्यूव्यू .xib में है। जब मैं ऊपर की तरह प्रोग्रामेटिक रूप से बाधाओं को जोड़ता हूं, तो मुझे एक साथ बाधा मिलती है और यह टूट जाती है ... –