ios - क्या मैं खाली कोशिकाओं के बीच विभाजक को छिपाने के लिए UITableView को मजबूर कर सकता हूं?




objective-c cocoa-touch (7)

आईओएस 7. * और आईओएस 6.1 के लिए

tableFooterView प्रॉपर्टी सेट करने का सबसे आसान तरीका है:

- (void)viewDidLoad 
{
    [super viewDidLoad];

    // This will remove extra separators from tableview
    self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
}

पिछले संस्करणों के लिए

आप इसे अपने टेबल व्यू कंट्रोलर में जोड़ सकते हैं (यह किसी भी वर्ग के लिए काम करेगा):

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
     // This will create a "invisible" footer
     return 0.01f;
 }

और यदि यह पर्याप्त नहीं है , तो निम्न कोड भी जोड़ें:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{        
    return [UIView new];

    // If you are not using ARC:
    // return [[UIView new] autorelease];
}

इस प्रश्न का उत्तर यहां दिया गया है:

एक सादे-शैली UITableView का उपयोग करते समय बड़ी संख्या में कोशिकाओं के साथ UITableView स्क्रॉल किए बिना उन्हें प्रदर्शित नहीं कर सकता है, कोशिकाओं के नीचे खाली स्थान में कोई विभाजक नहीं दिखाई देता है। अगर मेरे पास केवल कुछ कक्ष हैं तो उनके नीचे खाली स्थान में विभाजक शामिल हैं।

क्या कोई तरीका है कि मैं खाली जगह में विभाजक को हटाने के लिए UITableView को मजबूर कर सकता हूं? यदि नहीं, तो मुझे प्रत्येक सेल के लिए एक विभाजक के साथ एक कस्टम पृष्ठभूमि लोड करना होगा जो व्यवहार को प्राप्त करना कठिन बना देगा।

मुझे here कुछ हद तक समान प्रश्न मिला, लेकिन मैं अपने कार्यान्वयन में समूहबद्ध UITableView उपयोग नहीं कर सकता।


स्विफ्ट के लिए:

override func viewDidLoad() {
    super.viewDidLoad()
    tableView.tableFooterView = UIView()  // it's just 1 line, awesome!
}

टेबलव्यू के लिए एक पाद लेख परिभाषित करके आप जो चाहते हैं उसे प्राप्त कर सकते हैं। अधिक जानकारी के लिए यह उत्तर देखें: here


डैनियल से लिंक का उपयोग करके, मैंने इसे और अधिक उपयोग करने योग्य बनाने के लिए एक विस्तार किया:

//UITableViewController+Ext.m
- (void)hideEmptySeparators
{
    UIView *v = [[UIView alloc] initWithFrame:CGRectZero];
    v.backgroundColor = [UIColor clearColor];
    [self.tableView setTableFooterView:v];
    [v release];
}

कुछ परीक्षणों के बाद, मुझे पता चला कि आकार 0 हो सकता है और यह भी काम करता है। तो यह तालिका के अंत में किसी प्रकार का मार्जिन नहीं जोड़ता है। तो इस हैक के लिए धन्यवाद wkw। मैंने इसे पोस्ट करने का फैसला किया क्योंकि मुझे रीडायरेक्ट पसंद नहीं है।


मैं निम्नलिखित का उपयोग करता हूं:

UIView *view = [[UIView alloc] init];
myTableView.tableFooterView = view;
[view release];

इसे डीडलोड में देखना। लेकिन आप इसे कहीं भी सेट कर सकते हैं।


यदि आप आईओएस 7 एसडीके का उपयोग करते हैं, तो यह बहुत आसान है।

बस इस दृश्य को अपने दृश्य में जोड़ेंडलोड लोड विधि:

self.yourTableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

स्विफ्ट संस्करण

TableFooterView प्रॉपर्टी सेट करने का सबसे आसान तरीका है:

override func viewDidLoad() {
    super.viewDidLoad()
    // This will remove extra separators from tableview
    self.tableView.tableFooterView = UIView(frame: CGRectZero)
}




uitableview