2013-05-30 8 views
8

पर हाइलाइटिंग मैं एक कस्टम व्यवहार को कार्यान्वित करना चाहता हूं जब उपयोगकर्ता के पास UITableViewCell पर टच-डाउन होता है। उपयोगकर्ता के पास टच-डाउन होने पर जानकारी प्राप्त करने के लिए सबसे नज़दीकी चीज प्रतिनिधि विधि tableView:willSelectRowAtIndexPath: है। हालांकि, दस्तावेज कहता है:कस्टम UITableViewCell टच-डाउन

यह विधि तब तक नहीं बुलाई जाती जब तक उपयोगकर्ता एक पंक्ति को छूते नहीं हैं और फिर उंगली उठाते हैं; तब तक पंक्ति का चयन नहीं किया जाता है, हालांकि यह स्पर्श-डाउन पर हाइलाइट किया गया है। UITableViewCellSelectionStyleNone का उपयोग टच-डाउन पर सेल हाइलाइट की उपस्थिति को अक्षम करने के लिए कर सकते हैं। इस विधि को तब नहीं कहा जाता है जब तालिका दृश्य संपादन मोड में है (यानी, तालिका दृश्य की संपादन संपत्ति YES पर सेट है) जब तक तालिका दृश्य संपादन (यानी, अनुमति देता है चयन करने की अनुमति देता है तालिका दृश्य YES पर सेट है)।

मेरे कस्टम हाइलाइट व्यवहार करने के लिए इस स्पर्श-डाउन का पता लगाने पर कोई सलाह?

धन्यवाद!

+0

आप एक सेल उपवर्ग कर सकता है और उसके बाद 'touchesBegan में जो कुछ भी परिवर्तन लागू:' विधि, और उसके बाद में 'touchesEnded उन परिवर्तनों को हटा दें:'। –

उत्तर

30

आप UITableViewCell उपवर्ग और विधि ओवरराइड करने के लिए की जरूरत है:

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated 

और हो सकता है, अपनी आवश्यकताओं पर निर्भर करता है:

- (void)setSelected:(BOOL)selected animated:(BOOL)animated 

और भूल नहीं है सुपर फोन करने के लिए!


एप्पल के प्रलेखन:


अद्यतन (25/08/2015):

स्विफ्ट में, मुझे क्या करना चाहते हैं कुछ एल आइक इस:

override var highlighted: Bool { 
     get { 
      return super.highlighted 
     } 
     set { 
      if newValue { 
       backgroundColor = UIColor.redColor() 
      } 
      else { 
       backgroundColor = UIColor.blackColor() 
      } 
      super.highlighted = newValue 
     } 
    } 
-3
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 

    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 

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