Tuesday 20 February 2018

Edgesforextendedlayout - नेविगेशन - बार


IOS7 में शुरू, दृश्य नियंत्रक डिफ़ॉल्ट रूप से पूर्ण-स्क्रीन लेआउट का उपयोग करते हैं। साथ ही, आपके पास इस पर अधिक नियंत्रण है कि वह अपने विचारों को कैसे दिखाता है, और उन गुणों के साथ किया जाता है: मूल रूप से, इस संपत्ति के साथ आप सेट करते हैं कि आपके दृश्य के किन किनारे पूरे स्क्रीन को कवर करने के लिए बढ़ाया जा सकता है। कल्पना कीजिए कि आप एक UIViewController को एक UINavigationController में दबाएंगे। जब उस दृश्य के नियंत्रक को देखा जाता है, यह जहां नेवीगेशन बार समाप्त होता है, वहां शुरू होगा, लेकिन यह प्रॉपर्टी सेट की जाएगी कि पूरी स्क्रीन को भरने के लिए दृश्य (ऊपर, बायां, नीचे, दाएं) के किनारे को बढ़ाया जा सकता है। इसे एक उदाहरण के साथ देखते हैं: यहां आप किनारों के मूल्य निर्धारित नहीं कर रहे हैंएक्सटेक्टेडलेआउट। इसलिए डिफ़ॉल्ट मान (UIRectEdgeAll) लिया जाता है, इसलिए दृश्य पूरी स्क्रीन को भरने के लिए उसके लेआउट को बढ़ाता है। यह नतीजा है: जैसा कि आप देख सकते हैं, नेविगेशन बार और स्टेटस बार के पीछे लाल पृष्ठभूमि फैली हुई है। अब, आप उस मान को UIRectEdgeNone पर सेट करने जा रहे हैं इसलिए आप व्यू नियंत्रक को स्क्रीन को कवर करने के लिए दृश्य का विस्तार नहीं करने के लिए कह रहे हैं: जब आपका दृश्य एक UIScrollView या समान है, जैसे UITableView आप चाहते हैं कि आपकी मेज ने जहां नेविगेशन बार समाप्त हो, वहां शुरू हो, क्योंकि आप संपूर्ण सामग्री को नहीं देखते हैं, लेकिन एक ही समय में आप चाहते हैं कि आपकी तालिका स्क्रॉल करते समय पूरी स्क्रीन को कवर करे। उस स्थिति में, किनारों को सेट करने के लिएएक्सटेंटेडआपको कोई भी काम नहीं कर रहा है क्योंकि आपकी तालिका स्क्रॉल करना शुरू कर देती है जहां नेविगेशन बार समाप्त होता है और यह उसके पीछे नहीं जाता है यहां यह संपत्ति काम में आती है, यदि आप देखते हैं कि नियंत्रक स्वतः इनसेट को समायोजित करते हैं (ये संपत्ति को हाँ में भी सेट करते हैं, यह भी डिफ़ॉल्ट मान होता है) यह तालिका के शीर्ष पर इनसेट को जोड़ देगा, इसलिए तालिका शुरू होगी जहां नेविगेशन बार समाप्त होता है, लेकिन स्क्रॉल पूरी स्क्रीन को कवर करेगा। यह तब होता है जब नहीं: और हाँ (डिफ़ॉल्ट रूप से): दोनों ही मामलों में, नेविगेशन पट्टी के पीछे तालिका स्क्रॉल, लेकिन दूसरे मामले (हाँ) में, यह नेविगेशन बार के नीचे से शुरू होगा यह मान पिछले वाले लोगों के लिए एक अतिरिक्त है यदि स्टेटस बार अपारदर्शी है, तो स्टेटस बार भी शामिल करने के लिए दृश्यों को विस्तारित नहीं किया जाएगा, जब तक कि यह पैरामीटर हां नहीं है। इसलिए, यदि आप नेविगेशन बार को कवर करने के लिए अपने दृष्टिकोण का विस्तार करते हैं (किनारों के लिए विस्तारित लेआउट से यूआईएआरएक्टएडिट सभी) और पैरामीटर नहीं है (डिफ़ॉल्ट) यह स्थिति पट्टी को कवर नहीं करेगी यदि इसकी अपारदर्शी। अगर कुछ स्पष्ट नहीं है, तो एक टिप्पणी लिखें और I आईओएस कैसे जानता है कि आईओएस का उपयोग करने के लिए यूआईएसक्रॉलएव्यू आपके दृश्य नियंत्रकों को देखने के पहले सबव्यू को पकड़ लेता है, इसलिए सूचकांक 0 पर एक है, और यदि यूआईएसक्रॉलएव्यू के एक उपवर्ग तो समझाया गया गुणों को उस पर लागू होता है बेशक, इसका अर्थ है कि UITableViewController डिफ़ॉल्ट रूप से काम करता है (चूंकि UITableView पहले दृश्य है)। IOS 7 नेविगेशन पट्टी ओवरलैप समस्या को ठीक करना एक समस्या है जो आईओएस डेवलपर्स को दबाना कर रहा है क्योंकि आईओएस 7 में सुंदर पारदर्शी नेविगेशन बार आई , कुछ जब मैं लोगों से पूछता हूं कि ऐसा क्यों होता है, तो उन्हें बिल्कुल पता नहीं है। एक सरल तय यह है कि हर कोई उपयोग कर रहा है, लेकिन यह एक हैक है और कई डेवलपर्स इस समस्या को समझने के बिना ही इसका उपयोग कर रहे हैं। अपने नियंत्रक में रखो और अचानक यह काम करता है थोड़े। अब एनएवी बार में पारदर्शी होने का कोई मतलब नहीं है, जो इस प्रयोजन को हरा देता है। इसके पीछे जो दृश्य चाहिए, हमारे मूल दृश्य, और पृष्ठभूमि का यह रंग, अब और नहीं दिखा रहा है। ईमानदारी से, आप परवाह नहीं हो सकता है, यह आपके लिए पर्याप्त हो सकता है, लेकिन यह महत्वपूर्ण है कि आप अभी भी समस्या को समझते हैं, इसलिए इसे पढ़ें। यदि आपने वेब डेवलपमेंट किया है, तो यह अतिप्रवाह जैसा है: सीएसएस में छिपा हुआ है। काम करता है, लेकिन यह अभी भी एक quothackquot तरह का है तो समस्या यह है कि जब आप दृश्य फ्रेम सेट करते हैं, तो iOS 6 के विपरीत, फ़्रेम अभी भी नेविगेशन बार के नीचे के क्षेत्र को शामिल करता है क्या आपको एहसास नहीं हो सकता, यह है कि क्या कोई यूआईएसक्रोल दृश्य या UITableView जैसे उपवर्ग आपके नियंत्रक के लिए जरूरी दृश्य है, इसमें इसकी सामग्री इन्ससेट प्रॉपर्टी सेट होनी चाहिए, फ्रेम को नेविगेशन पट्टी के नीचे होने की इजाजत देता है, लेकिन उस वास्तविक मूल से यह चित्रण शुरू होता है जो कि नेविगेशन बार के नीचे से है इसका मतलब है कि हम इसके बजाय हमारे मूल दृश्य को यूआईएसक्रोल दृश्य (या उपवर्ग) बनाकर नेविगेशन बार की ओवरलैपिंग की समस्या को बहुत आसानी से ठीक कर सकते हैं, जबकि अभी भी हमारी पृष्ठभूमि का रंग चमकता है। यदि आप अपने विचारों को प्रोग्राम बनाते समय लोड करने की विधि को परिभाषित करके अपने रूट दृश्य को यूआईएसक्रोलएव्यू देख सकते हैं, जहां आपके रूट व्यू और यह सबव्यूज तैयार किए जा रहे हैं, यदि आप इसे आज़माते हैं, तो आपको यह मिलेगा नेविगेशन बार के माध्यम से लाल चमकता नोटिस ध्यान दें कि हम नीले रंग के व्यू के मूल को ऊपरी बाएं कोने के लिए सेट करते हैं सब कुछ ठीक है और काम कर रहा है कि एप्पल ने हमें पारदर्शी नेविगेशन बार का उपयोग करने की उम्मीद की है। यह हमारे स्क्रीन के आगे हमारे लेआउट का विस्तार करने का आसान तरीका देने के अतिरिक्त बोनस में है, कि हम एक स्क्रॉल व्यू का उपयोग कर रहे हैं, लेकिन आपको इसे वैसे भी ज़रूरत नहीं हो सकती है, इसके बजाय आप इसे UIView के प्रतिस्थापन के रूप में उपयोग कर सकते हैं जो इसे प्राप्त कर सकता है सामग्री इन्सेट सेट मुझे इस बात के लिए स्मृति मतभेदों पर गौर किया गया है, लेकिन मेरी उम्मीद है कि यह बहुत कम होगा यदि आप रूबी मोशन के बारे में अधिक जानना चाहते हैं, तो motioninmotion. tv पर मेरे स्क्रीनकास्ट की जांच करें या मेरी आगामी पुस्तक रूबी मोशन फॉर रेल डेवलपर्स देखें। जो प्री-ऑर्डर के लिए उपलब्ध है, पे आइ व्हॉट विटिंग प्राइसिंग मॉडल के तहत, भाग 1 लगभग समाप्त हो गया है और जल्द ही रिलीज़ होने की वजह से। रूबी मोशन एडवेंचर्स - मोशन इनमोशन ब्लॉग

No comments:

Post a Comment