2015-08-29 13 views
8

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

यह सवाल (UIGestureRecognizer and UITableViewCell issue), संबंधित प्रतीत होती है लेकिन इस सवाल का जवाब उद्देश्य सी में है, और दुर्भाग्य से मैं तेजी में केवल धाराप्रवाह हूँ।

तो किसी को भी शायद मुझे कैसे मैं एक तालिका सेल (नहीं पूरे tableview) में किसी ऑब्जेक्ट को इशारा पहचानकर्ता जोड़ने के बारे में जाना चाहते हैं, या यहां तक ​​कि शायद मेरे लिए ऊपर के लिंक से जवाब का अनुवाद करने में सहायता पर बाहर मदद कर सकता है तेज़, मैं आभारी हूं

उत्तर

15

यहाँ निर्धारण जो सेल कड़ी चोट हुआ जुड़ा हुआ पद के समाधान की एक त्वरित स्विफ्ट अनुवाद है, UITableView के लिए कड़ी चोट इशारा पहचानकर्ता जोड़ने और फिर आगे:

class MyViewController: UITableViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     var recognizer = UISwipeGestureRecognizer(target: self, action: "didSwipe") 
     self.tableView.addGestureRecognizer(recognizer) 
    } 

    func didSwipe(recognizer: UIGestureRecognizer) { 
     if recognizer.state == UIGestureRecognizerState.Ended { 
      let swipeLocation = recognizer.locationInView(self.tableView) 
      if let swipedIndexPath = tableView.indexPathForRowAtPoint(swipeLocation) { 
       if let swipedCell = self.tableView.cellForRowAtIndexPath(swipedIndexPath) { 
        // Swipe happened. Do stuff! 
       } 
      } 
     } 
    } 

} 
+0

हालांकि दोनों उत्तरों सही थे, मैंने इसे चुना क्योंकि यह अधिक पूर्ण था। बहुत बहुत धन्यवाद :) –

2

यहां आप जा सकते हैं। समाधान आप अपने प्रश्न में

"के बजाय सीधे सेल करने के लिए इशारा पहचानकर्ता जोड़ने उल्लेख स्विफ्ट संस्करण, आप viewDidLoad में tableview में जोड़ सकते हैं।

didSwipe-विधि में आप निर्धारित कर सकते हैं प्रभावित IndexPath और सेल इस प्रकार है: "

func didSwipe(gestureRecognizer:UIGestureRecognizer) { 
    if gestureRecognizer.state == UIGestureRecognizerState.Ended { 
     let swipeLocation = gestureRecognizer.locationInView(self.tableView) 
      if let swipedIndexPath = self.tableView.indexPathForRowAtPoint(swipeLocation){ 
      if let swipedCell = self.tableView.cellForRowAtIndexPath(swipedIndexPath!){ 


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