2011-10-17 14 views
11

मैं 4 टेबलव्यूसेल के आधार पर एक खोज स्ट्रिंग को एक साथ रख रहा हूं, प्रत्येक सेल एक सबव्यू खोलता है और उपयोगकर्ता द्वारा पिछले दृश्य के सेल को सेट करने के लिए चुने गए डेटा का एक गुच्छा लोड करता है।uitableviewcell को अचयनित करने के लिए कैसे करें

एक ऐसा आदेश है जिसमें इन कोशिकाओं को सेट करने की आवश्यकता है ताकि सबव्यू में डेटा की प्रत्येक पिछली सूची मूल दृश्य में डेटा सेट से संबंधित हो।

यानी पहले सेल में आप एक प्रकार का कार चुनते हैं, अगले सेल में आप चयनित कार के प्रकार से संबंधित मॉडल देखते हैं।

उस तरफ मेरे प्रश्न का आधार यह है कि पिछले सेल/एस सेट किए जाने तक मैं सेल को अचयनित कैसे कर सकता हूं।

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
//... 
if (indexPath.section == 0) 
    { 

if (indexPath.row == 0) // <<--- what could I put in here.... 
     { 
//... 
} 

} }

उत्तर

26

किसी भी व्यवहार को ट्रैक करने के लिए सेल अनुमति न दें:

[cell setUserInteractionEnabled:NO]; 

या बातचीत की अनुमति देते हैं, चयन रंग छुपा है, और जब क्लिक किया, कुछ भी नहीं।

[cell setSelectionStyle:UITableViewCellSelectionStyleNone]; 

- (void) tableViewDidSelectRow.... { 
    if(indexPath.row == indexOfCellWithNoUserInteraction) { 
     //do nothing 
    } 
} 
+0

यहीं पर संपादित इसके संभावित जब तक सेल का रंग बदलने के लिए एक रास्ता है? –

+0

इसका संपादन तब तक करना है जब तक इसे संपादित करना संभव न हो? –

+0

यह सब अच्छा है .. मैंने इसे समझ लिया .. मेरा मतलब यह था कि एक सेल लाइट ग्रे होने तक कहने का एक तरीका है जब तक कि यह किसी शर्त को पूरा न करे, फिर यह सफेद हो जाए ताकि उपयोगकर्ता जानता है कि वे अब इस सेल का चयन कर सकते हैं। लेकिन इसे समझ लिया है .. तो अब सब अच्छा है: पी –

6

tableView:willSelectRowAtIndexPath: का उपयोग करें। उन पंक्तियों के लिए वापस लौटें जिन्हें आप नहीं चुनना चाहते हैं।

2

स्विफ्ट सिंटेक्स

cell.selectionStyle = UITableViewCellSelectionStyle.None 
+0

यह इसे गैर-चयन योग्य नहीं बनाता है; टैप किए जाने पर बस UIKit कोई हाइलाइट प्रस्तुत नहीं करेगा। 'किया गया चयन करें ...' अभी भी बुलाया जाएगा। –

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