2015-06-29 95 views
0

我已經使用手勢識別爲UITableViewCells

if let fetchCell = fetchedResultsController... 

這是從核心數據填充的實現代碼如下我想從我的所有的tableview細胞手勢識別的功能,因此,當一個細胞刷在傳遞數據,識別器會識別它並將變量發送到手勢識別器的功能,以便我可以使用它們。

 var Swipe = UISwipeGestureRecognizer(target: self, action: Selector("swipes:")) 
     rightSwipe.direction = .Right 
     cell.addGestureRecognizer(Swipe) 

以上只是將手勢識別器添加到每個單獨的單元格。

func swipes(sender:UISwipeGestureRecognizer) { 
    println("You just swiped the following: \(correct_string)") 
} 

以上是切換單元格後的實際功能。我怎樣才能得到一個分配給if let中的單個單元的變量來在swipes函數內部打印

謝謝。希望我沒有混淆任何人。

回答

2

而不是使用一個單獨的手勢識別器的每個單元格(會,除非你很小心,會導致細胞再利用的問題),我將進行如下:

  1. 創建一個單一的手勢識別器,並添加它到tableView。
  2. 當識別到手勢時,在swipes函數中,使用senderlocationInView(tableView)來識別發生滑動的點。
  3. 然後使用tableView indexPathForRowAtPoint確定發生觸摸的單元的indexPath
  4. 最後,使用fetchedResultsController的objectAtIndexPath函數獲取相關的NSManagedObject

(大概correct_stringNSManagedObject的屬性。)

+0

其實我愛你!我所做的正是你告訴我的,再加上我用「if」語句包裝它來檢查對象是否返回「nil」。完美的作品!是的,correct_string是一個NSManagedObject – Ryan