ios - UITableView में रिक्त कक्षों को कैसे निकालें?




objective-c (10)

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

मैं कुछ डेटा के साथ एक सरल UITableView प्रदर्शित करने की कोशिश कर रहा हूँ। मैं UITableView की स्थिर ऊंचाई सेट करना चाहता हूं ताकि यह तालिका के अंत में खाली कोशिकाओं को प्रदर्शित न करे। मैं उसको कैसे करू?

कोड:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    NSLog(@"%d", [arr count]);
    return [arr count];
}

Answers

स्टोरीबोर्ड में, UITableView चयन करें और संपत्ति शैली को Plain से Grouped संशोधित करें।


स्विफ्ट 3 वाक्यविन्यास:

tableView.tableFooterView = UIView(frame: .zero)

स्विफ्ट वाक्यविन्यास: <2.0

tableView.tableFooterView = UIView(frame: CGRect.zeroRect)

स्विफ्ट 2.0 वाक्यविन्यास:

tableView.tableFooterView = UIView(frame: CGRect.zero)

शून्य ऊंचाई तालिका फ़ूटर व्यू सेट करें (शायद आपके viewDidLoad विधि में), जैसे:

स्विफ्ट:

tableView.tableFooterView = UIView()

उद्देश्य सी:

tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

चूंकि तालिका सोचती है कि दिखाने के लिए एक पाद लेख है, यह उन कोशिकाओं को प्रदर्शित नहीं करता है जिन्हें आपने स्पष्ट रूप से पूछा था।

इंटरफेस बिल्डर प्रो-टिप:

यदि आप xib / स्टोरीबोर्ड का उपयोग कर रहे हैं, तो आप UITiewView के नीचे एक UIView (ऊंचाई 0pt के साथ) खींच सकते हैं।


दृश्य में लोड करें:

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

या आप 1 बिंदु में पाद लेख की ऊंचाई सेट करने के लिए tableView विधि को कॉल कर सकते हैं, और यह एक अंतिम पंक्ति जोड़ देगा, लेकिन आप इसे पाद लेख पृष्ठभूमि रंग सेट करके भी छुपा सकते हैं।

कोड:

func tableView(tableView: UITableView,heightForFooterInSection section: Int) -> CGFloat {
     return 1
}

आखिरी पंक्ति की तरह दिखता है


एक्सकोड 6.1 पर तेजी से कार्यान्वित

self.tableView.tableFooterView = UIView(frame: CGRectZero)
self.tableView.tableFooterView?.hidden = true

कोड की दूसरी पंक्ति प्रस्तुति पर कोई प्रभाव नहीं डालती है, आप यह जांचने के लिए उपयोग कर सकते हैं कि छुपा हुआ है या नहीं।

UITableView स्विफ्ट में खाली कोशिकाओं को छुपाने के लिए इस लिंक से लिया गया उत्तर विफल


override func viewWillAppear(animated: Bool) {
    self.tableView.tableFooterView = UIView(frame: CGRect.zeroRect)

/// OR 

    self.tableView.tableFooterView = UIView()
}

मैं अभी तक टिप्पणी नहीं जोड़ सकता हूं इसलिए इसे एक उत्तर के रूप में जोड़ना।

@ एंडी का जवाब अच्छा है और कोड के निम्न पंक्ति के साथ एक ही परिणाम प्राप्त किए जा सकते हैं:

tableView.tableFooterView = [UIView new];

'नई' विधि NSObject क्लास से संबंधित है और UIView के लिए आवंटन और init विधियों का आह्वान करता है।


नीचे दी गई विधि में:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (([array count]*65) > [UIScreen mainScreen].bounds.size.height - 66)
    {
        Table.frame = CGRectMake(0, 66, self.view.frame.size.width, [array count]*65)); 
    }
    else
    {
        Table.frame = CGRectMake(0, 66, self.view.frame.size.width, [UIScreen mainScreen].bounds.size.height - 66);
    }
    return [array count];
}

यहां 65 सेल की ऊंचाई है और 66 UIViewController में नेविगेशन बार की ऊंचाई है।


आप Expect Labs द्वारा प्रदान किए गए MindMeld iOS SDK का उपयोग कर सकते हैं। यह iOS पर निरंतर (स्ट्रीमिंग) भाषण पहचान का समर्थन करता है। यह किसी भी कस्टम सामग्री डोमेन के लिए प्राकृतिक भाषा समझ और सामग्री खोज का भी समर्थन करता है।

इसे यहां https://expectlabs.com/docs/sdks/ios/gettingStarted : https://expectlabs.com/docs/sdks/ios/gettingStarted







ios objective-c uitableview