2013-02-25 80 views
6

मुझे पता है कि मैं इस विधि बुला नहीं द्वारा कोशिकाओं को पुन: उपयोग नहीं कर सकते हैं का उपयोग कर:मैं सेल का पुन: उपयोग नहीं कर सकते हैं कैसे, लेकिन एक प्रोटोटाइप सेल पहचानकर्ता

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SomeID"] 

विवरण उपलब्ध नहीं here के आधार पर।

लेकिन अगर मैं प्रोटोटाइप सेल का उपयोग कर रहा हूं तो क्या होगा?

क्योंकि अगर मैं अपने प्रोटोटाइप सेल के पहचानकर्ता को निर्दिष्ट नहीं करता हूं, तो मेरा टेबलव्यू केवल रिक्त कक्ष दिखाता है।

+0

क्या आप समझा सकते हैं कि आप कोशिकाओं का पुन: उपयोग क्यों नहीं करना चाहते हैं? – Caleb

+2

प्रतिक्रिया के लिए धन्यवाद, मैं कोशिकाओं का पुन: उपयोग नहीं करना चाहता क्योंकि मैंने टेक्स्ट फ़ील्ड के साथ एक प्रोटोटाइप सेल बनाया है, और जब मैं अपना ऐप चलाता हूं और मैं टेक्स्टफील्ड में कुछ लिखता हूं, तो मुझे दूसरी कोशिकाओं में डुप्लिकेट टेक्स्ट मिला। नोट: मेरे टेबलव्यू में 10 से अधिक सेल्स नहीं हैं, इसलिए मुझे नहीं लगता कि यदि मैं कोशिकाओं का पुन: उपयोग नहीं करता हूं तो प्रदर्शन एक समस्या होगी – user2034350

+0

"यदि मैं अपने प्रोटोटाइप सेल के पहचानकर्ता को निर्दिष्ट नहीं करता हूं" का क्या मतलब है? –

उत्तर

0

आपको कैश से सेल खींचने के ठीक बाद बस आप जिस विधि से निपट रहे हैं, उसे रीसेट करना चाहिए।

और उसके बाद विशिष्ट अनुक्रमणिका के लिए बिक्री के आपके सेटअप के साथ जारी रखें। उदाहरण के लिए उदाहरण के लिए:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SomeID"]; 
if(cell) 
{ 
    cell.textLable.text = nil; 
    cell.accessoryItem = nil; 
    ... 
} 

if(haveSomeText){ 
    cell.textLable.text = [allMyTexts objectForIndex:index]; 
} 
if(needSetButton){ 
    cell.accessoryItem = [[UIButton alloc] init ...]]; 
} 
...