मेरे पास पेजिंग सक्षम के साथ एक UITableView है। प्रत्येक सेल तालिका के देखने का क्षेत्र लेता है। मतलब, प्रत्येक सेल तालिका के समान ऊंचाई और चौड़ाई है। मैं कस्टम सेल का उपयोग कर रहा हूं जिसमें नाम संपत्ति है। मैं एक लेबल में वर्तमान (देखने योग्य) सेल का नाम प्रदर्शित करना चाहता हूं। यह पहली और आखिरी कोशिकाओं के लिए ठीक काम करता है लेकिन कुछ भी बीच में इतना आसान नहीं है। समस्या यह है कि इन मध्य कोशिकाओं के लिए cellForRowAtIndexPath को दो बार बुलाया जाता है। यह पहले से अंतिम सेल तक स्क्रॉल करने जैसा दिखता है और फिर वापस।UITableView पेजिंग से दृश्यमान सेल प्राप्त करना सक्षम
Row indexPath.row
0 0 //view loads and table appears
1 1,2 //user scrolls to second cell. cellForRowAtIndexPath fires twice. First time indexPath.row is one and second time it is two. This causes cell two's name to display in the label, rather than cell one.
2 2,3
3 3
//user starts scrolling back to first cell
2 1,2
1 1,0
0 0
मैं पता लगाने के लिए अगर मैं एक मध्य पंक्ति में कर रहा हूँ एक NSDate वस्तु का उपयोग निर्धारित कर सकते हैं: मैं उस पंक्ति के लिए cellForRowAtIndexPath आग के रूप में क्रम में अनुक्रमित सूचीबद्ध किया है। वर्तमान के साथ पिछले समय diffing करके, मुझे पता चलेगा। हालांकि, यदि उपयोगकर्ता कोशिकाओं के माध्यम से वास्तव में तेजी से स्क्रॉल करता है, तो शायद यह काम नहीं करता है। क्या ऐसा करने का कोई और तरीका है?
मैंने दृश्यमान गुणों की विविधताओं का उपयोग करने का प्रयास किया है लेकिन यह काम नहीं करता है। UITableView अगले सेल को लोड करेगा, भले ही यह दिखाई न दे, जिससे यह दृश्य कक्षों का हिस्सा बन जाए।
इस के साथ ही समस्या ... है कि वे हल नहीं कर रहे हैं उनमें से सॉर्ट, या सही क्रम में सरणी के लिए उन्हें जोड़ने के लिए एक त्वरित एक आसान तरीका है? –
+1 यह मेरा प्रश्न भी उत्तर देता है। –
आप [tableView visualCells] के साथ दृश्यमान कक्ष भी प्राप्त कर सकते हैं; – George