2012-10-19 9 views
5

इंटरफ़ेस बिल्डर में मुझे लगता है कि 'पिन' से "मानक" रिक्ति से मेल खाता है एक "कार्यक्षेत्र अंतरिक्ष" प्राप्त कर सकते हैं:ऑटो लेआउट के साथ कोड में UIViews के बीच मानक अंतर कैसे सेट करें?

enter image description hereenter image description here

दृश्य बाधा भाषा में मैं के साथ एक ही बात को पूरा कर सकते हैं:

V:[top]-[bottom] 

मैं कोड में दो विचारों के बीच मानक अंतर कैसे जोड़ूं?

मैं इस है कि एक UIViewController में दिखाई दे सकता की तरह कुछ के लिए देख रहा हूँ:

[self.view addConstraint:[NSLayoutConstraint 
    constraintWithItem:topView 
    attribute:NSLayoutAttributeBottom 
    relatedBy:NSLayoutRelationEqual 
    toItem:bottomView 
    attribute:NSLayoutAttributeTop 
    multiplier:1 
    constant:8]]; 
+0

आप "कोड में" दृश्य प्रारूप का उपयोग क्यों नहीं कर सकते हैं, या यह सिर्फ एक जिज्ञासा प्रश्न है (जो मेरे द्वारा ठीक है!) – jrturton

+0

@jrturton, मेरी सभी अन्य बाधाएं कोड में हैं। मैं ऐसा इसलिए कर रहा हूं क्योंकि मुझे यह कथन दस्तावेज में मिला है: "ऐसी बाधाएं हैं जिन्हें दृश्य प्रारूप वाक्यविन्यास में व्यक्त नहीं किया जा सकता है, हालांकि वास्तविक उपयोगकर्ता इंटरफेस में उपयोगी अधिकांश बाधाएं हो सकती हैं। एक उपयोगी बाधा जिसे व्यक्त नहीं किया जा सकता है एक निश्चित पहलू अनुपात (उदाहरण के लिए, imageView.width = 2 * imageView.height)। "जब तक मुझे पता न हो कि मैं क्या कर रहा हूं और दृश्य भाषा की सभी सीमाएं स्पष्ट हो गई हैं, मैं पहले कोड में सब कुछ करना चाहता था। –

उत्तर

2

मिश्रण और दृश्य प्रारूप की कमी मिलान और अधिक वर्बोज़:

NSLayoutConstraint *spacing = ??? 
[self.view addConstraint spacing]; 
+0

मैं एक अपवाद के साथ मिश्रित दृश्य प्रारूप शैली जा रहा था - एक सापेक्ष आकार बाधा जिसे कोड के अलावा किसी अन्य चीज़ में व्यक्त नहीं किया जा सकता है। इसने बाधा कोड को काफी साफ कर दिया। अच्छा निर्णय। –

5

मैं इस प्रयास नहीं किया है एकल बाधा निर्माण शैली (मुझे लगता है कि जब आप "कोड में" कहते हैं तो आप इसका जिक्र कर रहे हैं) वास्तव में, डब्ल्यूडब्ल्यूडीसी ऑटो लेआउट के बारे में वार्ता में, बाधाओं को बनाने के लिए आपके लिए "पसंदीदा" आदेश कहा गया था:

  • इंटरफ़ेस बिल्डर
  • दृश्य प्रारूप
  • एकल बाधा शैली

आप जब तक जरूरत अतिरिक्त शक्ति और लचीलापन है कि एक बाधा शैली आप देता है (और वहाँ स्थानों पर जहां दृश्य प्रारूप के बहुत सारे हैं अब तक मेरे अनुभव में काम नहीं करता है), आपको दृश्य प्रारूप का उपयोग करना चाहिए। ऐसा लगता है कि आप ऊपर की ओर ऊपर की सूची से ऊपर की ओर सूची के ऊपर आ रहे हैं।

यदि आप मानक अंतर के साथ विचार रखना चाहते हैं, और आप आईबी का उपयोग नहीं कर रहे हैं, तो दृश्य प्रारूप का उपयोग करने के लिए समझदारी होगी। जैसा कि रॉब कहते हैं, "मानक" रिक्ति के लिए स्थिर नहीं है, और आप सब कुछ के लिए एकल बाधाओं पर जोर देकर अपने लिए और अधिक काम कर रहे हैं।

+5

क्या यह 8 की जगह को कड़ी मेहनत नहीं कर रहा है? मुझे लगता है कि ओपी मानक रिक्ति का वर्णन करने के लिए कुछ सिस्टम निरंतर या कीवर्ड के बाद है। – jrturton

+0

@jrturton मुझे हेडर फ़ाइलों में इसके लिए स्थिर नहीं मिला। –

+0

@jrturton, यदि कोई सिस्टम स्थिर है जो मानक अंतर को व्यक्त करता है, तो यह एक अच्छा विकल्प होगा। लेकिन मैं सीधे संख्या 8 का उपयोग नहीं करना चाहूंगा। –

संबंधित मुद्दे