2011-04-17 12 views
10

मेरे पास UITableviewCell है। जब कोई उपयोगकर्ता सेल पर क्लिक करता है, तो मैं इंडेक्सपैथ को सहेजता हूं और फिर सेल प्राप्त करने के लिए cellforrowAtIndexpath विधि को कॉल करता हूं और फिर SetHighlighted को कॉल करता हूं: उस सेल पर TRUE।UITableViewCell हाइलाइट किए गए राज्य को कैसे बनाए रखें

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

धन्यवाद

उत्तर

19

चयनित सेल

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    self.selectedIndexPath = indexPath; 
} 

की indexpath बचाने के लिए और tableVIew:cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    // configure cell 
    if ([indexPath isEqual:self.selectedIndexPath]) { 
     [cell setHighlighted:YES]; 
    } 
    else { 
     [cell setHighlighted:NO]; 
    } 
    return cell; 

} 

में तुलना हालांकि, कि सेब के लिए सेल उजागर राज्य के उपयोग को हतोत्साहित ध्यान में रखना चयनित सेल इंगित करें। आपको शायद cell.accessoryType = UITableViewCellAccessoryCheckmark;

+0

का उपयोग करना चाहिए, धन्यवाद, मैं इसे आजमाने की कोशिश कर रहा हूं। – banditKing

+0

उत्तर के लिए धन्यवाद। लेकिन मेरे पास पहले से ही एक accessoryViewclosureindicator के रूप में एक accessoryView है। Thats क्यों मैं सेल को हाइलाइट करना चाहता था। क्या यह ऐप्पल के साथ एक समस्या होगी? क्या आपकी सलाह है? धन्यवाद – banditKing

+0

आप कभी नहीं जानते कि यह उनके साथ ठीक है या नहीं। कभी-कभी वे वास्तव में एचआईजी के बारे में सख्त हैं, कभी-कभी इतना नहीं। मैं बस इसे प्रस्तुत करने की कोशिश करता हूं। सबसे खराब स्थिति परिदृश्य वे इसे अस्वीकार करते हैं और आप इसे बदलते हैं। –

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