2012-03-21 15 views
8

मैं मैं कहाँ सेटUITableView.allowsMultipleSelection सक्षम होने पर चेकमार्क क्यों प्रदर्शित नहीं किए जा रहे हैं?

self.tableView.allowsMultipleSelection=YES; 

एप्पल प्रलेखन राज्यों "जब इस संपत्ति के मूल्य हाँ, एक जाँच चिह्न प्रत्येक पंक्ति है कि उपयोग किया जाता है के बगल में रखा जाता है एक iOS5.1 अनुप्रयोग में एक UITableView है। दोहन पंक्ति फिर से चेक मार्क को हटा देती है। "

मैं कई पंक्तियों का चयन करने में सक्षम हूं क्योंकि पृष्ठभूमि ब्लू पर सेट है। हालांकि, कोई चेकमार्क प्रदर्शित नहीं होते हैं। क्या चेकमार्क को सेट किया जाना चाहिए जैसा कि नीचे दिखाया गया है SelectRowAtIndexPath क्योंकि मैं कस्टम UITableViewCells का उपयोग कर रहा हूं?

cell.accessoryType = UITableViewCellAccessoryCheckmark; 
+1

मैं बिल्कुल है वही मुद्दा। क्या आपको इस समस्या का समाधान मिला? कृपया मुझे बताओ। – AlexR

+0

यहां एलेक्सआर के समान प्रश्न। "मुझे एक ही समस्या थी" के नीचे दिए गए जवाब इसलिए मैंने इसे अनदेखा करने और सुविधा को फिर से लागू करने का फैसला किया "संतोषजनक नहीं है। – Tommy

उत्तर

5

मैं अपने यूटेबलव्यूसेल सबक्लास में मैन्युअल रूप से चेकमार्क करता हूं। आपको USableViewCellAccessoryCheckmark को मैन्युअल रूप से didSelectRowAtIndexPath में करना होगा और ट्रैक का चयन करें कि किसको चुना गया है। मैं ऐसा कुछ सुझाऊंगा:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell* cell = [tableview cellAtIndex:indexPath]; 
    if(cell.accessoryType == UITableViewCellAccessoryCheckmark) 
     cell.accessoryType = UITableViewCellAccessoryCheckmark; 
    else 
    cell.accessoryType = UITableViewCellAccessoryNone; 
} 

नोट: मैंने इसका परीक्षण नहीं किया, लेकिन आपको मूल विचार देना चाहिए। अगर आपका कोई प्रश्न हैं, तो मुझे से पूछें। क्या आपने डिफ़ॉल्ट यूटेबलव्यूसेलसेल का उपयोग करने का प्रयास किया और देखा कि क्या उसने चेकमार्क किया है? मुझे नहीं लगता कि एक उपclass में एक समस्या होगी, जब तक आप subclass में संशोधन नहीं कर रहे हैं।

+1

धन्यवाद। यही वह है जो मैंने पिछले किया था, लेकिन यह ऐप्पल दस्तावेज़ों से लगता है कि यह स्वचालित रूप से आईओएस 5 + में होगा। मैंने इसे अभी इस तरह कार्यान्वित किया है। हालांकि, एक बग हो सकता है कि मैं कुछ स्थितियों में स्वचालित रूप से प्रदर्शित होने वाले चेकमार्क से संबंधित ट्रैक करने का प्रयास कर रहा हूं। – ChrisP

+1

आह, ठीक है। हाँ मैं सहमत हूं कि यह दस्तावेज़ों से प्रतीत होता है कि चेकमार्क स्वचालित रूप से संभाले जाने चाहिए। शायद यह सिर्फ यह मतलब है कि उचित दिशानिर्देश होंगे? वैसे भी, मैं फिर से सहमत हूं कि यह एक बग है या दस्तावेज़ों को दोहराया जाना चाहिए। – daltoniam

1

एक अन्य विकल्प tableView उपयोग करने के लिए है: didDeselectRowAtIndexPath: tableView के अलावा: didSelectRowAtIndexPath:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 

{

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 

cell.accessoryType = UITableViewCellAccessoryCheckmark; 

}

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath { 

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 

cell.accessoryType = UITableViewCellAccessoryNone; 

}

+0

यदि आप ऐसा करते हैं तो चेकबॉक्स बाईं ओर दाईं ओर दिखाई देगा। –

संबंधित मुद्दे