मुझे अपने UITableView के शीर्ष पर कुछ रिक्त स्थान जोड़ने की आवश्यकता है जो सामग्री क्षेत्र के आकार को प्रभावित नहीं करता है। सामग्री को नीचे शिफ्ट करना या रिक्त सेल जोड़ना वह नहीं है जो मैं करना चाहता हूं। इसके बजाय मुझे सिर्फ एक ऑफसेट चाहिए।
कैसे?
मुझे अपने UITableView के शीर्ष पर कुछ रिक्त स्थान जोड़ने की आवश्यकता है जो सामग्री क्षेत्र के आकार को प्रभावित नहीं करता है। सामग्री को नीचे शिफ्ट करना या रिक्त सेल जोड़ना वह नहीं है जो मैं करना चाहता हूं। इसके बजाय मुझे सिर्फ एक ऑफसेट चाहिए।
कैसे?
जवाबों:
मुझे यकीन नहीं है कि मैं आपका पीछा कर रहा हूं, लेकिन मुझे लगता है कि मैं एक ही भविष्यवाणी कर रहा हूं। मेरे मामले में मुझे स्क्रीन के शीर्ष पर ADBannerView के लिए कुछ जगह देनी चाहिए, इसलिए मैंने जो कुछ किया वह देखने के लिए किया गया था।
[self.tableView setContentInset:UIEdgeInsetsMake(50,0,0,0)];
यह मान लेता है UIEdgeInsetsMake (ऊपर, बाएं, नीचे, दाएं) हैं।
वैकल्पिक रूप से स्विफ्ट के साथ भी ऐसा ही है:
self.tableView.contentInset = UIEdgeInsetsMake(50, 0, 0, 0)
स्विफ्ट 4.2:
self.tableView.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 0, right: 0)
आप तालिका में एक "खाली" शीर्ष लेख दृश्य जोड़ सकते हैं ... यह एक ऑफसेट करने के लिए तालिका का प्रारंभिक स्वरूप देगा, लेकिन एक बार जब आप स्क्रॉल करना शुरू करते हैं तो ऑफसेट हो जाएगा। NOt सुनिश्चित करें कि आप क्या चाहते हैं।
यदि आपको एक स्थायी ऑफसेट की आवश्यकता है और पहले से ही अनुभाग हेडर का उपयोग नहीं कर रहे हैं, तो आप अनुभाग हेडर के लिए कस्टम दृश्य बनाकर ऊपर से ऑफसेट को समान रूप से बना सकते हैं, खासकर यदि आपके पास केवल एक अनुभाग है, तो यह आपको एक स्थायी ऑफसेट का रूप दे सकता है। ।
मैं नमूना कोड पोस्ट कर सकता हूं अगर यह उन दोनों में से एक जैसा लगता है तो आप क्या देख रहे हैं।
लगता है कि आप अपने चारों ओर एक 'दृश्य' लपेटना चाहते हैंUITableView । यदि आप एक है, तो UITableViewControllerआईबी में UITableViewस्वचालित रूप से करने के लिए सेट हो जाएगा viewकी UITableViewController। आप viewप्रॉपर्टी को एक सामान्य में बदलते हैं UIViewऔर उसमें अपना ऐड UITableViewदेते हैं और इसकी भरपाई करते हैं।
--- संपादित करें --- मैंने अभी-अभी अपनी पोस्ट पढ़ी है और सोचा है कि इसका कोई मतलब नहीं है :) जब आप बनाते हैं तो आपको UITableViewControllerयह मिल जाता है (छद्म कोड में):
UITableViewController.view = UITableView
इसका मतलब है कि वास्तविक तालिका पूरे स्थान को ले जाएगी और आप अन्य विचार भी नहीं जोड़ सकते। इसलिए आपको बदलने की जरूरत है
UITableViewController.view = UIView
और उस पर अपनी तालिका जोड़ें UIView
मैंने इसका उत्तर इस एक के साथ जोड़ा: https://stackoverflow.com/a/9450345/1993937
सामग्री इनसेट के शीर्ष पर तालिका दृश्य प्रदर्शित करने के लिए, इसलिए शीर्ष पर स्थान तालिका दृश्य के आरंभ में थोड़ा नीचे स्क्रॉल किए जाने से कट नहीं जाता है। (18 मेरा शीर्ष अंतर है)
[self.tableView setContentInset:UIEdgeInsetsMake(18,0,0,0)];
[self.tableView setContentOffset:
CGPointMake(0, -self.songListTable.contentInset.top) animated:YES];