2013-08-12 6 views
6

मेरे पास एक तालिका है कुछ कक्षों के साथ देखें। प्रत्येक सेल में एक बटन भी होता है। जब उपयोगकर्ता बटन पर क्लिक करता है, तो सेल अनजान होना चाहिए, लेकिन बटन नहीं। तो जब उपयोगकर्ता उस सेल के बटन पर क्लिक करता है जो क्लिक करने योग्य नहीं है, तो यह सेल फिर से क्लिक करने योग्य होना चाहिए।सेल को क्लिक करने योग्य नहीं बनाते हैं, लेकिन उस पर एक बटन अभी भी क्लिक करने योग्य होना चाहिए

मैंने कोशिश की:

cell.userInteractionEnabled = NO; 

... लेकिन फिर बटन अब और क्लिक करने योग्य नहीं था।

अग्रिम में आपके प्रयास के लिए धन्यवाद।

EDIT मेरा मतलब है: जब मैं किसी सेल पर क्लिक करता हूं तो एक नया दृश्य खुलता है। लेकिन मैं चाहता हूं कि कोई कार्रवाई न हो, जब सेल "क्लिक करने योग्य" न हो।

+0

व्यक्तिगत नियंत्रण पर 'userInteractionEnabled' सेट करके देखें। –

+0

@MarcusAdams लेकिन मैं यह कैसे कर सकता हूं? डिकोडर रिंग उपयोग के लिए – user2650439

उत्तर

14

किस तरह से अनजान? तुम सिर्फ चाहते हैं सेल चयन योग्य नहीं हो सकता है, तो आप शायद इस बात के लिए मांग कर रहे हैं:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

आप निष्पादित करने के लिए अपने कोड को रोकने के लिए जब चयन अक्षम किया गया है चाहते हैं, बस अपने didSelectRowAtIndexPath: अंदर चयन संपत्ति के लिए जाँच तरीका। कुछ इस तरह:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    if (cell.selectionStyle != UITableViewCellSelectionStyleNone) { 
     //(your code opening a new view) 
    } 
} 

याद रखें, आप अभी भी इस संपत्ति के साथ खेलने के लिए है, UITableViewCellSelectionStyleNone के लिए सेटिंग आपके पास सेल चयन होने के लिए नहीं करना चाहते, और UITableViewCellSelectionStyleBlue (या UITableViewCellSelectionStyleGray) वापस करने के लिए सेट करते समय आप यह चाहते फिर से चयन करने के लिए।

+0

+1। –

+0

लेकिन मैं अभी भी सेल पर क्लिक कर सकता हूं और नया दृश्य नियंत्रक खुलता है ... केवल एक ही अंतर जिसे मैं पहचानता हूं वह यह है कि सेल का चयन होने पर उनका कोई रंग नहीं है ... या मुझे कुछ गलत हो रहा है – user2650439

+0

संपादित। कोशिश करें और देखें कि क्या इससे मदद मिली है। –

0

के रूप में UITableViewCellSelectionStyleNone सेट करके चयन हटाएं।

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

और -tableView:didSelectRowAtIndexPath:

में कुछ नहीं कर अगर केवल प्रथम खंड में पहली पंक्ति बटन है और कुछ भी नहीं करना चाहिए उदाहरण के लिए आप कि प्रतिनिधि विधि में चयनात्मक होना कर सकते हैं:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSIndexPath *indexPathForDisabledCell = [NSIndexPath indexPathForRow:0 
                   inSection:0]; 
    if([indexPath compare:indexPathForDisabledCell] != NSOrderedSame) { 
     //Do whatever you do with other cells 
    } 
} 
संबंधित मुद्दे