मुझे इस बात की बिल्कुल भी समझ नहीं है कि लोग शिकायत क्यों कर रहे हैं कि " मार्जिन iOS 8 से पहले किसी भी चीज पर एक समान दुर्घटना का कारण होगा। "
एक xib फ़ाइल या स्टोरीबोर्ड में अपने बाधाओं मार्जिन के सापेक्ष स्थापना नहीं करता iOS7 पर अपने ऐप दुर्घटना बनाने के लिए, और यह नहीं करता है अपने iOS7 डिवाइस पर एक यूआई फर्क न, जब तक कि आप को स्पर्श नहीं करते के रूप में UIView.layoutMargins
औरUIView.preservesSuperviewLayoutMargins
अपने कोड में गुण।
IOS8 में मार्जिन क्या है
लेआउट मार्जिन एक इंटीरियर के चारों ओर पैडिंग का प्रतिनिधित्व करता है UIView
जो कि लेआउट सिस्टम का उपयोग कर सकता है जब सब-आउट लेट हो - यह सुनिश्चित करने के लिए कि एक दृश्य और एक सबव्यू के किनारे के बीच एक अंतर छोड़ा जाता है। इस संबंध में यह बहुत हद तक सीएसएस में ब्लॉकों से जुड़ी गद्दी संपत्ति की तरह है।
डिफ़ॉल्ट रूप से, UIView
प्रत्येक पक्ष पर 8 बिंदुओं का लेआउट मार्जिन होता है, और इसे इंटरफ़ेस बिल्डर में नहीं बदला जा सकता है । हालांकि, UIView.layoutMargins
कोड में संपत्ति सेट करके , जो केवल iOS8 पर उपलब्ध है, आप इन मूल्यों को समायोजित करने में सक्षम हैं।
आप संपादक> कैनवास> लेआउट लेआउट आयतों के साथ मार्जिन प्रदर्शित करने के लिए आईबी प्राप्त कर सकते हैं :
मार्जिन का उपयोग आपके विचारों और साक्षात्कारों को लेआउट करने में मदद करने के लिए किया जा सकता है। हर एकUIView
डिफ़ॉल्ट रूप से मार्जिन के साथ आता है, लेकिन वे केवल तभी दृश्य प्लेसमेंट को प्रभावित करते हैं जब आप एक बाधा से संबंधित होते हैं जो एक मार्जिन से संबंधित होती है।
हाशिये का उपयोग कैसे करें
इंटरफ़ेस बिल्डर में मार्जिन का उपयोग करने का एकमात्र तरीका अपने बाधाओं को कॉन्फ़िगर करते समय रिलेटिव टू मार्जिन विकल्प की जांच करना है । यह है कि जब आप अपने दृष्टिकोण को किनारों के बजाय हाशिये का उपयोग करने के लिए निर्देशित करते हैं, तो मेरे विचार से।
आइए एक दृश्य और इसके उप-भाग के बीच एक अग्रणी बाधा स्थापित करने के चार अलग-अलग तरीकों पर एक नज़र डालें। प्रत्येक बाधा के लिए हम पहले वर्णित एसोसिएशन की समीक्षा करते हैं जो सबव्यू की अग्रणी होगी , और दूसरी सुपरवाइड की अग्रणी होगी । आप जिस चीज पर ध्यान देना चाहते हैं , वह है कि प्रत्येक बाधा समाप्त होने के सापेक्ष के मार्जिन विकल्प की जांच और अनचेक स्थिति , क्योंकि यह परिभाषित करता है कि बाधा मार्जिन या दृश्य के किनारे से बंधा हुआ है या नहीं।
- पहला आइटम (अनचेक), दूसरा आइटम (चेक): इस मामले में, हम यह घोषित कर रहे हैं कि सबव्यू के बाएं किनारे को सुपरवाइवे के बाएं मार्जिन (जैसा कि इस छवि में दिखाया गया है) में संरेखित होना चाहिए।
- पहला आइटम (अनचेक), दूसरा आइटम (अनचेक): दोनों बढ़त का उपयोग कर रहे हैं, मार्जिन का नहीं । इस स्थिति में, हम यह घोषित कर रहे हैं कि सबव्यू के बाएं किनारे को सुपरवाइवे के बाएं किनारे पर संरेखित किया जाना चाहिए।
- पहला आइटम (चेक), दूसरा आइटम (अनचेक): इस मामले में, हम यह घोषित कर रहे हैं कि सबव्यू के बाएं मार्जिन को पर्यवेक्षणीय के बाएं किनारे पर संरेखित करना चाहिए। इस तरह का लेआउट वास्तव में सबव्यू को सुपरवाइज को ओवरलैप करता है।
- पहला आइटम (चेक), दूसरा आइटम (चेक)। यह वास्तव में केस 2 के रूप में एक ही प्रभाव है, क्योंकि सबव्यू और सुपरवाइवे में एक ही डिफ़ॉल्ट मार्जिन है। हम घोषणा कर रहे हैं कि सबव्यू के बाएं मार्जिन को सुपरवाइवे के बाएं मार्जिन के साथ संरेखित करना चाहिए।
मार्जिन के बारे में क्या अच्छा है
यदि आप मार्जिन का उपयोग करने का निर्णय लेते हैं तो यह नई सुविधा (iOS8) केवल UI विकास को प्रभावित करती है।
मार्जिन का उपयोग करके आप एक ही संपत्ति के मूल्य को बदलकर एक साझा पर्यवेक्षण का एक सामान्य संबंध साझा करने वाले कई साक्षात्कारों के प्लेसमेंट को समायोजित कर सकते हैं। यह निश्चित मानों के साथ सभी संबंधित बाधाओं को सेट करने पर एक स्पष्ट जीत है, क्योंकि यदि आपको एक-एक करके प्रत्येक मूल्य को बदलने के बजाय सभी रिक्ति को अपडेट करने की आवश्यकता है, तो आप पर्यवेक्षक के मार्जिन को एक पंक्ति के साथ अपडेट करके सभी प्रासंगिक प्लेसमेंट को संशोधित कर सकते हैं। इस तरह कोड एक:
self.rootView.layoutMargins = UIEdgeInsetsMake(0, 50, 0, 0);
इस लाभ को स्पष्ट करने के लिए, निम्नलिखित मामले में सभी साक्षात्कारों के बाएं किनारे को उनके पर्यवेक्षण के बाएं मार्जिन से जोड़ दिया जाता है। इस प्रकार, पर्यवेक्षक के बाएं मार्जिन को बदलने से एक ही समय में सभी साक्षात्कार प्रभावित होंगे।