2010-01-12 14 views
12

पर एक यूटेबलव्यूसेलसेल को अनक्लिक करने योग्य कैसे सेट करें हाय मैं अपने यूटेबलव्यूसेल को निष्क्रिय करने की कोशिश कर रहा हूं ताकि कोई उपयोगकर्ता क्लिक न कर सके लेकिन केवल सेल में डेटा कह सके। मैं ऐसा करने का प्रयास करता हूं:आईफोन एसडीके

UITableViewCell *cell = nil; 
if (indexPath.row < factsCount) { 
static NSString *FactsCellIdentifier = @"FactsCell"; 
cell = [tableView dequeueReusableCellWithIdentifier:FactsCellIdentifier]; 
[cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

हालांकि सेल को अभी भी क्लिक किया जा सकता है और हाइलाइट किया जा सकता है।

आपकी मदद के लिए धन्यवाद!

उत्तर

24

बस कुछ सेल चयनित किया जा रहा उपयोग बंद करने के लिए पुन: उपयोग कर:

cell.userInteractionEnabled = NO; 

साथ ही चयन को रोकने के रूप में, यह भी बंद हो जाता है tableView: didSelectRowAtIndexPath: के लिए बुलाया जा रहा है कोशिकाएं जो इसे सेट करती हैं।

(लेकिन ध्यान दें कि यह कोशिकाओं के भीतर किसी भी इंटरेक्टिव सामग्री को निष्क्रिय कर देगा - जैसे बटन - कि मामले के लिए, UITableViewCellSelectionStyleNone को selectionStyle सेट और उपेक्षा tableView:। DidSelectRowAtIndexPath: है कि सेल के लिए कहते हैं)

+2

काम करता है यह सबसे अच्छा जवाब है – barfoon

+0

मैंने देखा है कि कुछ मामलों में, किसी को स्पष्ट रूप से टेक्स्ट का रंग काला (या किसी भी रंग) में सेट करना होगा इसे भूरे रंग से बदलने से रोकें, जो cell.userInteractionEnabled = NO; स्वचालित रूप से ऐसा लगता है। बस ऐसा कुछ जिसके बारे में अवगत होना चाहिए। – Ryan

+0

एफवाईआई अगर आपके पास अपने सेल में बटन हैं, तो वे भी अक्षम हो जाएंगे। उस स्थिति में आप ओले के उत्तर – Jameo

11

सेल का selectionStyleUITableViewCellSelectionStyleNone पर सेट करें।

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

या

[cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 
+0

सेल अभी भी क्लिक करने योग्य है इसे लागू करने के बाद। मैंने कोड के साथ अपना प्रश्न अपडेट किया है। – Atma

+3

तकनीकी रूप से, सेल अभी भी क्लिक करने योग्य है लेकिन उपयोगकर्ता चयन नहीं देखता है। बेशक, आपको यह भी सुनिश्चित करना होगा कि आपकी 'तालिका दृश्य: didSelectRowAtIndexPath: 'कार्यान्वयन इस विशेष सेल के लिए कुछ भी नहीं करता है। –

+1

यदि आपके पास सेल के अंदर एक बटन है, तो यह समाधान है जो –

4

इस के साथ किया जा सकता है NSIndexPath का चयन किया जाना है।
जैसा कि पहले ही सेल हाइलाइटिंग अक्षम करने के अन्य उत्तरों में इंगित किया गया है, आपको अपनी चयन स्टाइल प्रॉपर्टी को UITableViewCellSelectionStyleNone पर सेट करना चाहिए।
यह भी सुनिश्चित करें कि आप सही ढंग से गुणों को सेट है कि जब tableviewcells

4

सेल चयन को निष्क्रिय आप तालिका दृश्य प्रतिनिधि में -(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath विधि को लागू करने और नहीं के बराबर है, तो आप सेल नहीं करना चाहती दिया साथ लौट सकते हैं करने के लिए: