Autolayout: पर्यवेक्षण में बाधा जोड़ें और शीर्ष लेआउट गाइड नहीं?


112

स्टोरीबोर्ड में मेरे UIViewController में एक UIView है जिसे मैं अंतरिक्ष में एक बाधा जोड़ना चाहता हूं जो शीर्ष किनारे से दूरी को देखता है।

अब, जब मैं ctrl + द्वारा सामान्य करता हूं, तो ViewController के मुख्य दृश्य पर खींचें मुझे केवल शीर्ष लेआउट गाइड पर इसे सेट करने का विकल्प मिलता है।

यह मेरे लिए एक समस्या है क्योंकि ऐप में एक बिंदु पर मुख्य दृश्य को 20-50px के आसपास स्थानांतरित करने के लिए जा रहा है और फिर क्या होता है, वह दृश्य मैं स्थानांतरित नहीं होगा ... क्योंकि इसका पर्यवेक्षक में संरेखित नहीं किया गया है।

मैं स्टोरीबोर्ड में इसे मैन्युअल रूप से कैसे कर सकता हूं या क्या मुझे इसे प्रोग्रामेटिक रूप से जोड़ना होगा?

Im xcode 6 का उपयोग कर रहा हूँ।


क्या आप दस्तावेज़ में सही इकाई को बाईं ओर ड्रैग और ड्रॉप कर सकते हैं? - इस स्क्रीनशॉट में दृश्य वस्तुओं: ptgmedia.pearsoncmg.com/images/chap5_9780672335761/elementLinks/…
वुडस्टॉक

Ive ने उस
अस्वस्थता

जवाबों:


306

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

यहां छवि विवरण दर्ज करें


6
हलिलुय! मुझे नहीं पता था कि जब वे संपादक को हटाएंगे तो मैं क्या करने जा रहा था -> पिन मेनू।
जेरेमी हिक्स

4
विश्वास नहीं कर सकता कि मैंने पहले नहीं देखा था। बहुत बढ़िया।
झुमझम

9
सिर्फ उन लोगों के लिए एक नोट जो मेरे जैसे ही कुलबुला रहे हैं -> आप इस बदलाव को तब तक नहीं कर सकते जब तक कि आप जिस दृष्टिकोण से बाधा नहीं जोड़ रहे हैं वह शीर्ष लेआउट गाइड के नीचे है। मेरे पास शीर्ष लेआउट गाइड के ऊपर एक दृश्य था और "टॉप लेआउट गाइड" ड्रॉप डाउन मेनू में एक विकल्प नहीं था। जो शायद मेरे जैसे नॉन-न्यूब्स के लिए एक "डुह" स्टेटमेंट है :)
रयान जेम्स

2
यह उन छोटे Xcode सूक्ष्मताओं के बारे में है। इतना ही करते हैं। :)
मार्ची

बस एक त्वरित स्पष्टीकरण जिसने मुझे भ्रमित किया: शीर्ष लेआउट गाइड वाली छवि के बावजूद, यदि आप दृश्य को डिवाइस के शीर्ष की तरह दृश्य के शीर्ष पर पिन करना चाहते हैं, तो "दृश्य" चुनें।
10

57

आपको स्टोरीबोर्ड में इच्छित दृश्य को हाइलाइट करके और फिर Editor > Pin > Top Space to Superviewशीर्ष मेनू में चयन करके इसे करने में सक्षम होना चाहिए ।


यह XCode 7 में पुराना है, इसके बजाय @ PaulGurov का उत्तर देखें।


एक आकर्षण की तरह काम करता है - XCode 6.3
NKorotkov

4
वे Xcode 7 में संपादक मेनू से 'पिन' निकाल चुके हैं। कोई नया समाधान?
काइल जी

14

TL; DR: Altकीबोर्ड पर की को दबाकर आप मार्जिन को बाधित कर सकते हैं ।


एक यह भी जोड़ सकता है कि यदि आप जिस दृश्य को पिन करने का प्रयास कर रहे हैं, वह उस दृश्य का प्रत्यक्ष उप-खंड नहीं है जिसे आप उसे पिन करना चाहते हैं, तो सुझाया गया दृष्टिकोण वास्तव में मान्य नहीं है। मान लें कि पदानुक्रम दृश्य जैसा दिखता है और आप छवि दृश्य ( Parallax Image Viewइस मामले में) को दृश्य नियंत्रक के दृश्य ( Viewइस मामले में) को पिन करना चाहते हैं ।

यहां छवि विवरण दर्ज करें

ऐसा करने के लिए आप सिर्फ इतना है कि Control+ Dragसे Parallax Image Viewकरने के लिए View। वह डिफ़ॉल्ट विकल्प प्रस्तुत करता है जहां आप शीर्ष लेआउट गाइड में Vertical Spacing to Top Layout Guideपिन करने के Parallax Image Viewलिए देख सकते हैं ।

यहां छवि विवरण दर्ज करें

आप जो चाहते हैं, उसे दृश्य के शीर्ष (मार्जिन) पर पिन करना है। ऐसा करने के लिए आपको दबाकर बाधाओं के दूसरे सेट पर स्विच करना होगाAlt

यहां छवि विवरण दर्ज करें


बहुत उपयोगी टिप। इससे वास्तव में मेरी समस्या हल हो गई है।
मचाडो

यह मेरे लिए काम करता है, लेकिन मैं नहीं जानता कि एक ही समय में कई बाधाओं को कैसे जोड़ा जाए। अब, मुझे समय निकालने के लिए एक-एक को जोड़ना होगा।
डुक गुयेन

3

मेरे पास पहले से ही बाधाओं का एक पूरा गुच्छा था और मैं सिर्फ उन्हें तोड़ने के बजाय उन्हें बदलना चाहता था। यह पता चला कि यदि आप संपादित करने के लिए बाधा पर डबल क्लिक करते हैं, तो उस आइटम पर क्लिक करें जिसमें ".Margin" है, आप बस उस आइटम का चयन करके "Relative to Margin" को बंद कर सकते हैं।

मार्जिन के सापेक्ष चुनें


यह वही था जो मैं यहाँ आने के लिए देख रहा था! धन्यवाद
netigger

1

डैन का जवाब काम करता है। मैं सिर्फ यह बताना चाहता हूं कि यदि आप कहानी में अपना दृश्य y <20 पर सेट करते हैं, और पिन पैनल के माध्यम से बाधाओं को कॉन्फ़िगर करते हैं, तो यह पर्यवेक्षण के लिए शीर्ष पर सेट होगा:

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें


0

यदि दृश्य की ऊंचाई दुर्घटना से 0 पर सेट है, तो वर्टिकल स्पेस टू टॉप लेआउट गाइड दिखाई नहीं देगा। वर्टिकल स्पेस से बॉटम लेआउट गाइड दिखाई देगा, हालांकि, जिसने ऐप्पा सरका 2004 के अंदर किसी के लिए समझदारी की होगी।


0

उपर्युक्त उत्तरों में से किसी ने भी मेरे लिए काम नहीं किया, इसके बजाय मुझे अपने सबव्यू के शीर्ष को सुपरव्यू के शीर्ष के बजाय किसी अन्य लेआउट गाइड के साथ सेट करने के लिए हैक करना है।

  • सबसे पहले, सबव्यू सेंटर को सुपरवाइवे के साथ लंबवत सेट करें।
  • फिर, उप- केंद्र के साथ-साथ पर्यवेक्षण के लिए केंद्र Y बाधाओं को शीर्ष बाधा में बदलें ।

अब आप जाने के लिए अच्छे हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.