इसे दोहराने में रुचि रखने वाले किसी भी व्यक्ति के लिए, इन चरणों का पालन करें:
- एक नया iOS प्रोजेक्ट बनाएं
- मुख्य स्टोरीबोर्ड खोलें और डिफ़ॉल्ट / प्रारंभिक हटाएं
UIViewController
UITableViewControllerऑब्जेक्ट लाइब्रेरी से एक नया खींचें
- इसे प्रारंभिक दृश्य नियंत्रक के रूप में सेट करें
- टेबल को कुछ परीक्षण डेटा खिलाएं
यदि आप उपरोक्त चरणों का पालन करते हैं, तो जब आप ऐप चलाते हैं, तो आप देखेंगे कि कुछ भी नहीं, जिसमें Xcode के चेकबॉक्स को "एडजेंड एग्स अंडर {टॉप, बॉटम, ओपेक} बार्स" को ट्विस्ट करना पहली पंक्ति को स्टेटस बार के तहत प्रदर्शित होने से रोकने का काम करता है, न ही आप इस प्रोग्राम को संबोधित कर सकते हैं।
उदाहरण के लिए उपरोक्त परिदृश्य में, निम्नलिखित का कोई प्रभाव नहीं पड़ेगा:
// These do not work
self.edgesForExtendedLayout=UIRectEdgeNone;
self.extendedLayoutIncludesOpaqueBars=NO;
self.automaticallyAdjustsScrollViewInsets=NO;
यह मुद्दा बहुत निराशाजनक हो सकता है, और मेरा मानना है कि यह Apple के अंत पर एक बग है, खासकर क्योंकि यह UITableViewControllerऑब्जेक्ट लाइब्रेरी से अपने पूर्व-वायर्ड में दिखाता है ।
मैं उन सभी से असहमत हूं, जो "मैजिक नंबर" के किसी भी रूप का उपयोग करके इसे हल करने की कोशिश कर रहे हैं, जैसे "20px का डेल्टा का उपयोग करें"। इस तरह की तंग युग्मित प्रोग्रामिंग निश्चित रूप से नहीं है जो Apple हमें यहाँ करना चाहता है।
मैंने इस समस्या के दो समाधान खोजे हैं:
UITableViewController'के दृश्य को संरक्षित करना :
यदि आप UITableViewControllerस्टोरीबोर्ड में रखना चाहते हैं , तो मैन्युअल रूप से इसे किसी अन्य दृश्य में रखे बिना, आप इसे UITableViewControllerएक में एम्बेड कर सकते हैं UINavigationController(संपादक> एंबेड इन> नेविगेशन नियंत्रक) और निरीक्षक में "नेविगेशन बार दिखाता है" को अनचेक करें। । यह समस्या को बिना किसी अतिरिक्त ट्विकिंग के हल करता है, और यह UITableViewControllerस्टोरीबोर्ड में आपके दृश्य को भी संरक्षित करता है।
AutoLayout का उपयोग करना और UITableViewएक अन्य दृश्य में एम्बेड करना (मेरा मानना है कि यह कैसे Apple हमें ऐसा करना चाहता है) :
एक खाली बनाएं UIViewControllerऔर UITableViewइसमें अपना खींचें । फिर, अपने UITableViewस्टेटस बार की ओर से Ctrl-drag करें । जैसे ही माउस स्टेटस बार के निचले हिस्से में जाता है, आपको एक ऑटोलैयूट बुलबुला दिखाई देगा, जो कहता है कि "टॉप लेआउट गाइड"। माउस को छोड़ें और "वर्टिकल स्पेसिंग" चुनें। यह स्टेटस बार के ठीक नीचे रखने के लिए लेआउट सिस्टम को बताएगा।
मैंने एक खाली आवेदन पर दोनों तरीकों का परीक्षण किया है और वे दोनों काम करते हैं। आपको उन्हें अपनी परियोजना के लिए काम करने के लिए कुछ अतिरिक्त ट्विकिंग करने की आवश्यकता हो सकती है।