लो, नहीं SPACERS!
मेरे मूल उत्तर के टिप्पणियों अनुभाग में सुझावों के आधार पर, विशेष रूप से @ रिवेरा के उपयोगी सुझाव, मैंने अपना मूल उत्तर सरल कर दिया है।
मैं gifs का उपयोग यह बताने के लिए कर रहा हूं कि यह कितना सरल है। मुझे आशा है कि आप gif को उपयोगी पाएंगे। बस अगर आपको gif में कोई समस्या है, तो मैंने नीचे दिए गए पुराने उत्तर को सादे स्क्रीन शॉट्स के साथ शामिल किया है।
निर्देश:
1) अपने बटन या लेबल जोड़ें। मैं 3 बटन का उपयोग कर रहा हूं।
2) प्रत्येक बटन से पर्यवेक्षक के लिए एक केंद्र x बाधा जोड़ें:
3) प्रत्येक बटन से नीचे लेआउट बाधा में एक बाधा जोड़ें:
4) उपरोक्त # 3 में जोड़े गए अवरोध को समायोजित करें:
a) बाधा का चयन करें,
b) स्थिरांक को हटाएं (0 पर सेट करें),
c) गुणक को निम्नानुसार बदलें: बटन + 1 की संख्या लें, और शीर्ष पर शुरू करते हुए, गुणक को बटन के रूप में सेट करेंप्लस 1: 1 , और फिर बटनकाउंटप्लस 1 : 2 , और अंत में बटनकाउंटप्लस 1: 3 । (मैं समझाता हूँ कि मुझे यह सूत्र नीचे दिए गए पुराने उत्तर में मिला है, यदि आप रुचि रखते हैं)।
5) यहाँ एक डेमो चल रहा है!
नोट: यदि आपके बटनों की ऊंचाई अधिक है, तो आपको निरंतर मूल्य में इसकी भरपाई करने की आवश्यकता होगी क्योंकि बाधा बटन के नीचे से है।
पुराना उत्तर
एप्पल के डॉक्स और एरिका सदुन की उत्कृष्ट पुस्तक ( ऑटो लेआउट डिमिस्टिफ़ाइड ) के बावजूद, स्पेसर्स के बिना अंतरिक्ष के विचारों को समान रूप से संभव करना संभव है । यह आईबी में करने के लिए बहुत सरल है और आपके द्वारा समान रूप से अंतरिक्ष में जाने वाले तत्वों की संख्या के लिए कोड। आप सभी की जरूरत है एक गणित सूत्र "अनुभाग सूत्र" कहा जाता है। यह समझाने की तुलना में करना आसान है। मैं इसे आईबी में प्रदर्शित करके अपना सर्वश्रेष्ठ प्रदर्शन करूंगा, लेकिन कोड में ऐसा करना आसान है।
प्रश्न में उदाहरण में, आप करेंगे
1) एक केंद्र बाधा के लिए प्रत्येक लेबल सेट करके शुरू करें। यह करना बहुत सरल है। बस प्रत्येक लेबल से नीचे तक ड्रैग को नियंत्रित करें।
2) शिफ्ट को दबाए रखें, क्योंकि आप दूसरे बाधा को भी जोड़ सकते हैं जिसका हम उपयोग करने जा रहे हैं, जिसका नाम है, "नीचे का स्थान लेआउट के नीचे"।
3) "निचला स्थान से नीचे लेआउट गाइड", और "कंटेनर में क्षैतिज रूप से केंद्र" का चयन करें। यह सब 3 लेबल के लिए करें।
मूल रूप से, यदि हम उस लेबल को लेते हैं जिसका समन्वय हम निर्धारित करना चाहते हैं और कुल संख्या 1 लेबल से विभाजित करते हैं, तो हमारे पास एक संख्या है जिसे हम डायनामिक स्थान प्राप्त करने के लिए आईबी में जोड़ सकते हैं। मैं सूत्र को सरल बना रहा हूं, लेकिन आप इसे एक ही समय में क्षैतिज रिक्ति या ऊर्ध्वाधर और क्षैतिज दोनों के लिए उपयोग कर सकते हैं। यह सुपर शक्तिशाली है!
यहाँ हमारे गुणक हैं।
लेबल 1 = 1/4 = .25
लेबल 2 = 2/4 = .5
लेबल 3 = 3/4 = .75
(संपादित करें: @Rivera ने टिप्पणी की कि आप सीधे गुणक क्षेत्र में सीधे अनुपात का उपयोग कर सकते हैं, और गणित कर सकते हैं!)
4) तो, चलिए Label1 चुनें और नीचे की ओर का चयन करें। ऐशे ही:
5) गुण निरीक्षक में "दूसरा आइटम" चुनें।
6) ड्रॉप डाउन से "पहले और दूसरे आइटम को उल्टा करें" चुनें।
7) शून्य स्थिर और wC hAny मान। (यदि आपको इसकी आवश्यकता हो तो आप यहां एक ऑफसेट जोड़ सकते हैं)।
8) यह महत्वपूर्ण हिस्सा है: गुणक क्षेत्र में हमारा पहला गुणक 0.25 जोड़ते हैं।
9) जब आप इस पर होते हैं तो हम "CenterY" पर शीर्ष "पहला आइटम" सेट करते हैं क्योंकि हम इसे लेबल के y केंद्र में रखना चाहते हैं। यहाँ है कि सभी को कैसे देखना चाहिए।
10) प्रत्येक लेबल के लिए इस प्रक्रिया को दोहराएं और संबंधित गुणक में प्लग करें: लेबल 2 के लिए 0.5, और लेबल 3 के लिए 0.75। यहाँ सभी कॉम्पैक्ट उपकरणों के साथ सभी झुकावों में अंतिम उत्पाद है! सुपर सिंपल है। मैं बहुत सारे समाधानों को देख रहा हूं जिनमें कोड, और स्पेसर्स के दायरे शामिल हैं। यह इस मुद्दे पर मैंने देखा सबसे अच्छा समाधान है।
अपडेट: @kraftydevil जोड़ता है कि निचला लेआउट गाइड केवल स्टोरीबोर्ड में दिखाई देता है, न कि xibs में। एक्सब में 'बॉटम स्पेस टू कंटेनर' का प्रयोग करें। अच्छी पकड़!