UITableViewजब आप नीचे स्क्रॉल करते हैं तो रिक्त स्थान पर शो की कोशिकाएँ होती हैं?
यदि ऐसा है, तो समस्या वह इनसेट हो सकती है जिसे जोड़ा जाता है UITableView गए नेविगेशन कंट्रोलर वजह से । जब कोई स्क्रॉल नहीं हुआ है तब सामग्री को नेविगेशन बार के नीचे रखने के लिए तालिका दृश्य में जोड़ा जाता है। जब तालिका स्क्रॉल की जाती है, तो सामग्री एक पारदर्शी नेविगेशन बार के तहत स्क्रॉल और दिखाती है। यह व्यवहार निश्चित रूप से केवल तभी चाहता था जब टेबल दृश्य सीधे नेविगेशन बार के नीचे शुरू होता है, जो यहां नहीं है।
ध्यान देने वाली एक और बात यह है कि iOS सामग्री पदानुक्रम को केवल दृश्य पदानुक्रम में पहले दृश्य के लिए समायोजित करता है यदि यह है UIScrollViewया यह वंशज (जैसे ) UITableViewऔर है UICollectionView। यदि आपके दृश्य पदानुक्रम में कई स्क्रॉल दृश्य शामिल हैं,automaticallyAdjustsScrollViewInsets तो केवल पहले एक के लिए समायोजन किया जाएगा।
इस व्यवहार को कैसे बदला जाए:
a) इंटरफ़ेस बिल्डर
मुझे यकीन नहीं है कि कौन सा Xcode संस्करण इस विकल्प को पेश करता है (इसे रिलीज़ नोट्स में स्थान नहीं दिया गया है), लेकिन यह कम से कम 5.1.1 संस्करण में उपलब्ध है।
संपादित करें: भ्रम से बचने के लिए, टिप्पणियों में उल्लिखित यह तीसरा विकल्प था
बी) प्रोग्रामेटिक रूप से
इसे इसे जोड़ें viewDidLoad( स्लाव पेटकोवस्की के जवाब और क्रिस आर की टिप्पणी का श्रेय )
// Objective-C
self.automaticallyAdjustsScrollViewInsets = NO;
// Swift
self.automaticallyAdjustsScrollViewInsets = false
ग) यह पुराने स्कूली छात्रों के लिए प्रासंगिक हो सकता है
आप इसे जोड़कर ठीक कर सकते हैं
tableView.contentInset = UIEdgeInsetsZero
//Swift 3 Change
tableView.contentInset = UIEdgeInsets.zero
या यदि आप आईबी का उपयोग कर रहे हैं और यदि नेविगेशन बार पारदर्शी नहीं है (तो स्क्रीनशॉट से नहीं बता सकते)
- दृश्य नियंत्रक का चयन करें
- ओपन इंस्पेक्टर इंस्पेक्टर
- नियंत्रक विकल्पों में दृश्य किनारों को बढ़ाएँ "शीर्ष बार्स के तहत" का चयन रद्द करें