Wednesday 17 January 2018

Edgesforextendedlayout - uitableview - उदाहरण


IOS7 में शुरू, दृश्य नियंत्रक डिफ़ॉल्ट रूप से पूर्ण-स्क्रीन लेआउट का उपयोग करते हैं। साथ ही, आपके पास इस पर अधिक नियंत्रण है कि वह अपने विचारों को कैसे दिखाता है, और उन गुणों के साथ किया जाता है: मूल रूप से, इस संपत्ति के साथ आप सेट करते हैं कि आपके दृश्य के किन किनारे पूरे स्क्रीन को कवर करने के लिए बढ़ाया जा सकता है। कल्पना कीजिए कि आप एक UIViewController को एक UINavigationController में दबाएंगे। जब उस दृश्य के नियंत्रक को देखा जाता है, यह जहां नेवीगेशन बार समाप्त होता है, वहां शुरू होगा, लेकिन यह प्रॉपर्टी सेट की जाएगी कि पूरी स्क्रीन को भरने के लिए दृश्य (ऊपर, बायां, नीचे, दाएं) के किनारे को बढ़ाया जा सकता है। इसे एक उदाहरण के साथ देखते हैं: यहां आप किनारों के मूल्य निर्धारित नहीं कर रहे हैंएक्सटेक्टेडलेआउट। इसलिए डिफ़ॉल्ट मान (UIRectEdgeAll) लिया जाता है, इसलिए दृश्य पूरी स्क्रीन को भरने के लिए उसके लेआउट को बढ़ाता है। यह नतीजा है: जैसा कि आप देख सकते हैं, नेविगेशन बार और स्टेटस बार के पीछे लाल पृष्ठभूमि फैली हुई है। अब, आप उस मान को UIRectEdgeNone पर सेट करने जा रहे हैं इसलिए आप व्यू नियंत्रक को स्क्रीन को कवर करने के लिए दृश्य का विस्तार नहीं करने के लिए कह रहे हैं: जब आपका दृश्य एक UIScrollView या समान है, जैसे UITableView आप चाहते हैं कि आपकी मेज ने जहां नेविगेशन बार समाप्त हो, वहां शुरू हो, क्योंकि आप संपूर्ण सामग्री को नहीं देखते हैं, लेकिन एक ही समय में आप चाहते हैं कि आपकी तालिका स्क्रॉल करते समय पूरी स्क्रीन को कवर करे। उस स्थिति में, किनारों को सेट करने के लिएएक्सटेंटेडआपको कोई भी काम नहीं कर रहा है क्योंकि आपकी तालिका स्क्रॉल करना शुरू कर देती है जहां नेविगेशन बार समाप्त होता है और यह उसके पीछे नहीं जाता है यहां यह संपत्ति काम में आती है, यदि आप देखते हैं कि नियंत्रक स्वतः इनसेट को समायोजित करते हैं (ये संपत्ति को हाँ में भी सेट करते हैं, यह भी डिफ़ॉल्ट मान होता है) यह तालिका के शीर्ष पर इनसेट को जोड़ देगा, इसलिए तालिका शुरू होगी जहां नेविगेशन बार समाप्त होता है, लेकिन स्क्रॉल पूरी स्क्रीन को कवर करेगा। यह तब होता है जब नहीं: और हाँ (डिफ़ॉल्ट रूप से): दोनों ही मामलों में, नेविगेशन पट्टी के पीछे तालिका स्क्रॉल, लेकिन दूसरे मामले (हाँ) में, यह नेविगेशन बार के नीचे से शुरू होगा यह मान पिछले वाले लोगों के लिए एक अतिरिक्त है यदि स्टेटस बार अपारदर्शी है, तो स्टेटस बार भी शामिल करने के लिए दृश्यों को विस्तारित नहीं किया जाएगा, जब तक कि यह पैरामीटर हां नहीं है। इसलिए, यदि आप नेविगेशन बार को कवर करने के लिए अपने दृष्टिकोण का विस्तार करते हैं (किनारों के लिए विस्तारित लेआउट से यूआईएआरएक्टएडिट सभी) और पैरामीटर नहीं है (डिफ़ॉल्ट) यह स्थिति पट्टी को कवर नहीं करेगी यदि इसकी अपारदर्शी। अगर कुछ स्पष्ट नहीं है, तो एक टिप्पणी लिखें और I आईओएस कैसे जानता है कि आईओएस का उपयोग करने के लिए यूआईएसक्रॉलएव्यू आपके दृश्य नियंत्रकों को देखने के पहले सबव्यू को पकड़ लेता है, इसलिए सूचकांक 0 पर एक है, और यदि यूआईएसक्रॉलएव्यू के एक उपवर्ग तो समझाया गया गुणों को उस पर लागू होता है बेशक, इसका मतलब यह है कि UITableViewController डिफ़ॉल्ट रूप से काम करता है (चूंकि UITableView पहले दृश्य है)। UITableViewCell पुन: उपयोग के लिए किसी कक्ष को कैसे पंजीकृत करें IOS 6.0 से उपलब्ध है स्विफ्ट ट्यूटोरियल के साथ हैकिंग देखें 33 तालिका दृश्य कोशिकाओं का पुन: उपयोग करना सबसे महत्वपूर्ण प्रदर्शन में से एक रहा है आईओएस 2.0 के बाद से आईओएस में ऑप्टिमाइज़ेशन, लेकिन आईओएस 6.0 के साथ ही यह था कि एपीआई रजिस्टर () विधि के अतिरिक्त के साथ थोड़ी साफ हो गई। रजिस्टर के दो रूप हैं लेकिन दोनों एक पैरामीटर लेते हैं जिसे CallReuseIdentifier कहा जाता है। जो एक स्ट्रिंग है जो आपको विभिन्न प्रकार की तालिका दृश्य कोशिकाओं को रजिस्टर करने देता है। उदाहरण के लिए, हो सकता है कि आपके पास एक पुन: उपयोगकर्ता पहचानकर्ता डीफॉल्ट सेलोट हो, जिसे एक दूसरे को उद्धृत किया जा सकता है quot हैडिंग सेलकोट, दूसरा एक उद्धरण उद्धरण, उद्धरण चिह्न, आदि। विभिन्न कोशिकाओं का पुन: प्रयोग करके इस तरह से सिस्टम संसाधनों को सहेजने में मदद मिलती है। यदि आप स्विफ्ट क्लास के साथ रजिस्टर () का उपयोग करना चाहते हैं, तो आप तालिका दृश्य सेल क्लास को अपना पहला पैरामीटर प्रदान करते हैं। यह उपयोगी है यदि आपके कोड को पूरी तरह से कोड में परिभाषित किया गया है। एक उदाहरण के रूप में, यह डिफ़ॉल्ट UITableViewCell क्लास का उपयोग करता है: फिर आप उस कक्ष को इस तरह से हटा सकते हैं: यदि कोई भी सेल नहीं बनाया गया है जिसे पुन: उपयोग किया जा सकता है, तो आईओएस स्वतः ही यह एपीआई बना देगा, वास्तव में बहुत आसान है। दूसरा विकल्प इंटरफ़ेस बिल्डर निब फ़ाइल के साथ रजिस्टर () का उपयोग करना है Nibs में उनके डिजाइन के साथ उपयोग करने के लिए क्लास का नाम होता है, इसलिए यह विधि अधिक आम है। यह एक उदाहरण है हालांकि उपरोक्त कोड को जानने के लिए निश्चित रूप से उपयोगी है, यदि आप स्टोरीबोर्ड का उपयोग कर रहे हैं तो आप प्रोटोटाइप कोशिकाओं को बनाने और उन्हें सीधे इंटरफ़ेस बिल्डर के अंदर एक पुन: उपयोगकर्ता पहचान प्रदान करने के लिए मिलेगा। क्या यह समाधान आपके लिए काम करता है कृपया इसे पास करें अन्य लोग पढ़ रहे हैं स्विफ्ट ज्ञान के बारे में यह स्विफ्ट नॉलेज बेस का हिस्सा है। आम आईओएस सवालों के समाधान के लिए एक मुफ्त, खोजनीय संग्रह। मैकोज़ एप्लिकेशन बनाना चाहते हैं मैकोज़ के साथ हैकिंग 18 अद्भुत परियोजनाएं प्रदान करती हैं जो आपको मैकोड डेवलपमेंट को सिखाते हैं कि आपके डेस्कटॉप का नियंत्रण आज ही नहीं हो सकता है IOS7 में स्टार्टिंग, व्यू नियंत्रक डिफ़ॉल्ट रूप से पूर्ण-स्क्रीन लेआउट का उपयोग करते हैं। साथ ही, आपके पास इस पर अधिक नियंत्रण है कि वह अपने विचारों को कैसे दिखाता है, और उन गुणों के साथ किया जाता है: मूल रूप से, इस संपत्ति के साथ आप सेट करते हैं कि आपके दृश्य के किन किनारे पूरे स्क्रीन को कवर करने के लिए बढ़ाया जा सकता है। कल्पना कीजिए कि आप एक UIViewController को एक UINavigationController में दबाएंगे। जब उस दृश्य के नियंत्रक को देखा जाता है, यह जहां नेवीगेशन बार समाप्त होता है, वहां शुरू होगा, लेकिन यह प्रॉपर्टी सेट की जाएगी कि पूरी स्क्रीन को भरने के लिए दृश्य (ऊपर, बायां, नीचे, दाएं) के किनारे को बढ़ाया जा सकता है। इसे एक उदाहरण के साथ देखते हैं: यहां आप किनारों के मूल्य निर्धारित नहीं कर रहे हैंएक्सटेक्टेडलेआउट। इसलिए डिफ़ॉल्ट मान (UIRectEdgeAll) लिया जाता है, इसलिए दृश्य पूरी स्क्रीन को भरने के लिए उसके लेआउट को बढ़ाता है। यह नतीजा है: जैसा कि आप देख सकते हैं, नेविगेशन बार और स्टेटस बार के पीछे लाल पृष्ठभूमि फैली हुई है। अब, आप उस मान को UIRectEdgeNone पर सेट करने जा रहे हैं इसलिए आप व्यू नियंत्रक को स्क्रीन को कवर करने के लिए दृश्य का विस्तार नहीं करने के लिए कह रहे हैं: जब आपका दृश्य एक UIScrollView या समान है, जैसे UITableView आप चाहते हैं कि आपकी मेज ने जहां नेविगेशन बार समाप्त हो, वहां शुरू हो, क्योंकि आप संपूर्ण सामग्री को नहीं देखते हैं, लेकिन एक ही समय में आप चाहते हैं कि आपकी तालिका स्क्रॉल करते समय पूरी स्क्रीन को कवर करे। उस स्थिति में, किनारों को सेट करने के लिएएक्सटेंटेडआपको कोई भी काम नहीं कर रहा है क्योंकि आपकी तालिका स्क्रॉल करना शुरू कर देती है जहां नेविगेशन बार समाप्त होता है और यह उसके पीछे नहीं जाता है यहां यह संपत्ति काम में आती है, यदि आप देखते हैं कि नियंत्रक स्वतः इनसेट को समायोजित करते हैं (ये संपत्ति को हाँ में भी सेट करते हैं, यह भी डिफ़ॉल्ट मान होता है) यह तालिका के शीर्ष पर इनसेट को जोड़ देगा, इसलिए तालिका शुरू होगी जहां नेविगेशन बार समाप्त होता है, लेकिन स्क्रॉल पूरी स्क्रीन को कवर करेगा। यह तब होता है जब नहीं: और हाँ (डिफ़ॉल्ट रूप से): दोनों ही मामलों में, नेविगेशन पट्टी के पीछे तालिका स्क्रॉल, लेकिन दूसरे मामले (हाँ) में, यह नेविगेशन बार के नीचे से शुरू होगा यह मान पिछले वाले लोगों के लिए एक अतिरिक्त है यदि स्टेटस बार अपारदर्शी है, तो स्टेटस बार भी शामिल करने के लिए दृश्यों को विस्तारित नहीं किया जाएगा, जब तक कि यह पैरामीटर हां नहीं है। इसलिए, यदि आप नेविगेशन बार को कवर करने के लिए अपने दृष्टिकोण का विस्तार करते हैं (किनारों के लिए विस्तारित लेआउट से यूआईएआरएक्टएडिट सभी) और पैरामीटर नहीं है (डिफ़ॉल्ट) यह स्थिति पट्टी को कवर नहीं करेगी यदि इसकी अपारदर्शी। अगर कुछ स्पष्ट नहीं है, तो एक टिप्पणी लिखें और I आईओएस कैसे जानता है कि आईओएस का उपयोग करने के लिए यूआईएसक्रॉलएव्यू आपके दृश्य नियंत्रकों को देखने के पहले सबव्यू को पकड़ लेता है, इसलिए सूचकांक 0 पर एक है, और यदि यूआईएसक्रॉलएव्यू के एक उपवर्ग तो समझाया गया गुणों को उस पर लागू होता है बेशक, इसका मतलब यह है कि UITableViewController डिफ़ॉल्ट रूप से काम करता है (चूंकि UITableView पहले दृश्य है)। UITableViewCell पुन: उपयोग के लिए किसी कक्ष को कैसे पंजीकृत करें IOS 6.0 से उपलब्ध है स्विफ्ट ट्यूटोरियल के साथ हैकिंग देखें 33 तालिका दृश्य कोशिकाओं का पुन: उपयोग करना सबसे महत्वपूर्ण प्रदर्शन में से एक रहा है आईओएस 2.0 के बाद से आईओएस में ऑप्टिमाइज़ेशन, लेकिन आईओएस 6.0 के साथ ही यह था कि एपीआई रजिस्टर () विधि के अतिरिक्त के साथ थोड़ी साफ हो गई। रजिस्टर के दो रूप हैं लेकिन दोनों एक पैरामीटर लेते हैं जिसे CallReuseIdentifier कहा जाता है। जो एक स्ट्रिंग है जो आपको विभिन्न प्रकार की तालिका दृश्य कोशिकाओं को रजिस्टर करने देता है। उदाहरण के लिए, हो सकता है कि आपके पास एक पुन: उपयोगकर्ता पहचानकर्ता डीफॉल्ट सेलोट हो, जिसे एक दूसरे को उद्धृत किया जा सकता है quot हैडिंग सेलकोट, दूसरा एक उद्धरण उद्धरण, उद्धरण चिह्न, आदि। विभिन्न कोशिकाओं का पुन: प्रयोग करके इस तरह से सिस्टम संसाधनों को सहेजने में मदद मिलती है। यदि आप स्विफ्ट क्लास के साथ रजिस्टर () का उपयोग करना चाहते हैं, तो आप तालिका दृश्य सेल क्लास को अपना पहला पैरामीटर प्रदान करते हैं। यह उपयोगी है यदि आपके कोड को पूरी तरह से कोड में परिभाषित किया गया है। एक उदाहरण के रूप में, यह डिफ़ॉल्ट UITableViewCell क्लास का उपयोग करता है: फिर आप उस कक्ष को इस तरह से हटा सकते हैं: यदि कोई भी सेल नहीं बनाया गया है जिसे पुन: उपयोग किया जा सकता है, तो आईओएस स्वतः ही यह एपीआई बना देगा, वास्तव में बहुत आसान है। दूसरा विकल्प इंटरफ़ेस बिल्डर निब फ़ाइल के साथ रजिस्टर () का उपयोग करना है Nibs में उनके डिजाइन के साथ उपयोग करने के लिए क्लास का नाम होता है, इसलिए यह विधि अधिक आम है। यह एक उदाहरण है हालांकि उपरोक्त कोड को जानने के लिए निश्चित रूप से उपयोगी है, यदि आप स्टोरीबोर्ड का उपयोग कर रहे हैं तो आप प्रोटोटाइप कोशिकाओं को बनाने और उन्हें सीधे इंटरफ़ेस बिल्डर के अंदर एक पुन: उपयोगकर्ता पहचान प्रदान करने के लिए मिलेगा। क्या यह समाधान आपके लिए काम करता है कृपया इसे पास करें अन्य लोग पढ़ रहे हैं स्विफ्ट ज्ञान के बारे में यह स्विफ्ट नॉलेज बेस का हिस्सा है। आम आईओएस सवालों के समाधान के लिए एक मुफ्त, खोजनीय संग्रह। उद्देश्य-सी फास्ट को जानने की आवश्यकता है, मैंने डेवलपर्स को उद्देश्य-सी को समर्पित करने के लिए समर्पित एक पुस्तक लिखी, जो पहले से ही स्विफ्ट को गति से उठने का सबसे तेज़ तरीका जानते हैं

No comments:

Post a Comment