Wednesday 20 December 2017

एजेंसफ़ेस्टेडलेआउट यूआईवीआईसी नियंत्रक


IOS7 में शुरू, दृश्य नियंत्रक डिफ़ॉल्ट रूप से पूर्ण-स्क्रीन लेआउट का उपयोग करते हैं। साथ ही, आपके पास इस पर अधिक नियंत्रण है कि वह अपने विचारों को कैसे दिखाता है, और उन गुणों के साथ किया जाता है: मूल रूप से, इस संपत्ति के साथ आप सेट करते हैं कि आपके दृश्य के किन किनारे पूरे स्क्रीन को कवर करने के लिए बढ़ाया जा सकता है। कल्पना कीजिए कि आप एक UIViewController को एक UINavigationController में दबाएंगे। जब उस दृश्य के नियंत्रक को देखा जाता है, यह जहां नेवीगेशन बार समाप्त होता है, वहां शुरू होगा, लेकिन यह प्रॉपर्टी सेट की जाएगी कि पूरी स्क्रीन को भरने के लिए दृश्य (ऊपर, बायां, नीचे, दाएं) के किनारे को बढ़ाया जा सकता है। इसे एक उदाहरण के साथ देखते हैं: यहां आप किनारों के मूल्य निर्धारित नहीं कर रहे हैंएक्सटेक्टेडलेआउट। इसलिए डिफ़ॉल्ट मान (UIRectEdgeAll) लिया जाता है, इसलिए दृश्य पूरी स्क्रीन को भरने के लिए उसके लेआउट को बढ़ाता है। यह नतीजा है: जैसा कि आप देख सकते हैं, नेविगेशन बार और स्टेटस बार के पीछे लाल पृष्ठभूमि फैली हुई है। अब, आप उस मान को UIRectEdgeNone पर सेट करने जा रहे हैं इसलिए आप व्यू नियंत्रक को स्क्रीन को कवर करने के लिए दृश्य का विस्तार नहीं करने के लिए कह रहे हैं: जब आपका दृश्य एक UIScrollView या समान है, जैसे UITableView आप चाहते हैं कि आपकी मेज ने जहां नेविगेशन बार समाप्त हो, वहां शुरू हो, क्योंकि आप संपूर्ण सामग्री को नहीं देखते हैं, लेकिन एक ही समय में आप चाहते हैं कि आपकी तालिका स्क्रॉल करते समय पूरी स्क्रीन को कवर करे। उस स्थिति में, किनारों को सेट करने के लिएएक्सटेंटेडआपको कोई भी काम नहीं कर रहा है क्योंकि आपकी तालिका स्क्रॉल करना शुरू कर देती है जहां नेविगेशन बार समाप्त होता है और यह उसके पीछे नहीं जाता है यहां यह संपत्ति काम में आती है, यदि आप देखते हैं कि नियंत्रक स्वतः इनसेट को समायोजित करते हैं (ये संपत्ति को हाँ में भी सेट करते हैं, यह भी डिफ़ॉल्ट मान होता है) यह तालिका के शीर्ष पर इनसेट को जोड़ देगा, इसलिए तालिका शुरू होगी जहां नेविगेशन बार समाप्त होता है, लेकिन स्क्रॉल पूरी स्क्रीन को कवर करेगा। यह तब होता है जब नहीं: और हाँ (डिफ़ॉल्ट रूप से): दोनों ही मामलों में, नेविगेशन पट्टी के पीछे तालिका स्क्रॉल, लेकिन दूसरे मामले (हाँ) में, यह नेविगेशन बार के नीचे से शुरू होगा यह मान पिछले वाले लोगों के लिए एक अतिरिक्त है यदि स्टेटस बार अपारदर्शी है, तो स्टेटस बार भी शामिल करने के लिए दृश्यों को विस्तारित नहीं किया जाएगा, जब तक कि यह पैरामीटर हां नहीं है। इसलिए, यदि आप नेविगेशन बार को कवर करने के लिए अपने दृष्टिकोण का विस्तार करते हैं (किनारों के लिए विस्तारित लेआउट से यूआईएआरएक्टएडिट सभी) और पैरामीटर नहीं है (डिफ़ॉल्ट) यह स्थिति पट्टी को कवर नहीं करेगी यदि इसकी अपारदर्शी। अगर कुछ स्पष्ट नहीं है, तो एक टिप्पणी लिखें और I आईओएस कैसे जानता है कि आईओएस का उपयोग करने के लिए यूआईएसक्रॉलएव्यू आपके दृश्य नियंत्रकों को देखने के पहले सबव्यू को पकड़ लेता है, इसलिए सूचकांक 0 पर एक और अगर यूआईएसक्रोलएव्यू के उप-वर्ग तब समझाए गए गुणों पर लागू होता है बेशक, इसका मतलब यह है कि UITableViewController डिफ़ॉल्ट रूप से काम करता है (चूंकि UITableView पहले दृश्य है)। लेआउट गाइड एक दृश्य नियंत्रक कंटेनर की जिम्मेदारियों में से एक अपने बच्चे को देखने के नियंत्रक दृश्य लेआउट है। यह मार्गदर्शिका इस पर निर्भर करती है कि आप इसे कैसे नियंत्रित कर सकते हैं प्रकट करें पीक राशि बनाम यह इस तरह है कि जब आप एक तरफ लंगर डाले जाते हैं तो आप शीर्ष दृश्य की क्षैतिज स्थिति निर्दिष्ट करते हैं लंगर प्रकट और लंगर की मात्रा के बीच अंतर को जानना महत्वपूर्ण है जब कई ओरिएंटेशन और स्क्रीन आकारों का समर्थन करते हैं। यदि आपको केवल एक विशिष्ट स्क्रीन आकार पर एक ओरिएंटेशन का समर्थन करने की आवश्यकता है, तो अंतर कोई फर्क नहीं पड़ता प्रकट करने के लिए दृश्य के क्षैतिज राशि प्रकट करें। झांकना दिखाने के लिए शीर्ष दृश्य की क्षैतिज राशि गुणों के लिए नामकरण सम्मेलन: लंगर (बाएं या दाएं) (प्रकट या दिखावा) राशि सभी संभावनाओं का संयोजन इन चार गुणों की ओर जाता है: एंकर लेफ्टपेकअमैन एंकर लेफ्ट रिव्वल एमाउंट एंकरराइटपेक एमाउंट एंकरराइट रिवॉवल एमाउंट एक तरफ प्रकट होने की मात्रा निर्धारित करने से उस समान पक्ष के लिए पीक राशि की गणना की जाएगी और इसके विपरीत। आपके द्वारा निर्धारित संपत्ति एक निश्चित मूल्य होगी जिसके कारण अन्य गणना की जानी चाहिए। यह UIViewController में निर्मित एक संपत्ति है आईओएस 7 यूआई ट्रांज़िशन गाइड से एक विवरण है: किनारों के लिए विस्तारित लेन-देन प्रॉपर्टी UIRectEdge प्रकार का उपयोग करती है, जो प्रत्येक आयत को चार किनारों को निर्दिष्ट करती है, इसके अलावा कोई भी और सभी को निर्दिष्ट नहीं करने के अलावा बार पारस्परिकता की परवाह किए बिना, किसी दृश्य के किन किनों को विस्तारित किया जाना चाहिए, यह निर्दिष्ट करने के लिए किनारों के लिए एक्सटेंशन का उपयोग करें। डिफ़ॉल्ट रूप से, इस प्रॉपर्टी का मान UIRectEdgeAll है ECSlidingViewController कंटेनर को विस्तारित करने के लिए किन किन किन किन किन किन किनारों पर फैलता है यह निर्णय लेने के लिए इस मूल्य का उपयोग करता है। यदि बढ़त नहीं बढ़ी तो इसे लेआउट गाइड पर रखा जाएगा। यह UIKit दृश्य नियंत्रक कंटेनर के समान ही व्यवहार है, सिवाय इसके कि किनारों के अर्थ का अर्थ है। UIRectEdge को छोड़कर किनारों से बाहर निकलना फॉर एक्स्टेंडेड लेआउट मुखौटा शीर्ष लेआउट मार्गदर्शिका पर शीर्ष किनारे रखेगा। UIRectEdge को छोड़कर किनारों से बाहर निकलते ForExcludedLayout मुखौटा नीचे लेआउट गाइड पर शीर्ष बढ़त जगह होगी। UIRectEdge को छोड़कर किनारों से बाहर ले जाने के लिएअधिक विस्तारित लेआउट मुखौटा बाईं किनारे पर स्थित होगा जहां शीर्ष दृश्य सही किनारे पर होगा जब बाईं ओर लंगर किया जाएगा। यह केवल दृश्यमान नियंत्रण नियंत्रक के रूप में उपयोग किया जाता है। यह या तो कंटेनर की पूरी चौड़ाई पर कब्जा कर सकता है या फिर यह प्रकट राशि के बराबर होगा (चाहे वह तय हो या गणना हो)। UIRectEdgeRight को छोड़कर किनारों से बाहर के लिएअधिक विस्तारित लेआउट मुखौटा उस दाहिने किनारे पर स्थित होगा जहां शीर्ष दृश्यों को छोड़ दिया जाता है, जब सही पर लंगर होगा। यह केवल नीचे नियंत्रक के रूप में उपयोग किए जाने वाले दृश्य नियंत्रकों को प्रभावित करता है। यह या तो कंटेनर की पूरी चौड़ाई पर कब्जा कर सकता है या फिर यह प्रकट राशि के बराबर होगा (चाहे वह तय हो या गणना हो)। शीर्ष और नीचे विचारों के लिए लेआउट को अनुकूलित किया जा सकता है। इसे ईसीएसलाइडिंग वीककंट्रोलर लेआउट प्रोटोकॉल के अनुरूप बनाने वाले ऑब्जेक्ट का निर्माण किया जाता है और इसे स्लाइडिंग व्यू नियंत्रकों के प्रतिनिधि में लौटाते हैं: slidingViewController: layoutControllerForTopViewPosition: ECSlidingViewControllerLayout में कार्यान्वित करने के लिए एक विधि है: आपको दिए गए viewController के लिए एक फ्रेम का प्रतिनिधित्व करने वाले CGRect को वापस करने की उम्मीद है topViewPosition। आप डिफ़ॉल्ट लेआउट पर फॉलबैक करने के लिए CGRectInfinite लौट सकते हैं। स्लाइडिंग वीयूआईसी नियंत्रक के विचार फ्रेम के आधार पर गणना की जाती है एक सीजीआरएक्ट लौटें अगर यह तय है या स्क्रीन फ्रेम पर आधारित है, तो रोटेशन और सीमा परिवर्तन लेआउट को तोड़ सकते हैं। स्लाइडिंग वीआईईकंट्रोलर के लंगर की मात्रा के अनुसार शीर्ष दृश्य को स्थान दें। शीर्षविदृश्य के शब्दों को रखें। उदाहरण के लिए, यदि शीर्ष विज़िटेज ECSlidingViewControllerTopViewPositionAnchoredRight है I फिर शीर्ष दृश्य को कहीं सही स्थान पर रखें चूंकि उपरोक्त सुझाव हैं आपको उनका पालन करना नहीं है बस परिणामों को जानते हैं कि आप रोटेशन लेआउट या ECSlidingViewController API के शब्दों को तोड़ सकते हैं।

No comments:

Post a Comment