Я использую UISwipeGestureRecognizer , чтобы обнаружить пролистывание ячейки в UITableViewCell , аналогично ЭТОЙ ССЫЛКЕ , которая позволит пользователю ' Как 'фотография.
Проблема в том, что я не совсем понимаю, как изменить значение Like для этого конкретного поста - и у него нет indexPath какдругие «встроенные» методы.Я также не понимаю, как он знает, как использовать ячейку, которая отображается преимущественно на экране, поскольку может быть несколько ячеек, которые еще не были «сняты с производства»?:
@objc func mySwipeAction (swipe: UISwipeGestureRecognizer) {
switch swipe.direction.rawValue {
case 1:
print ("the PostID you selected to LIKE is ...")
case 2:
print ("the PostID you selected to Undo your LIKE is ...")
default:
break
}
}
и мойtableView выглядит следующим образом:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "postTopContributions", for: indexPath) as! PostTopContributions
let postImage = postImageArray [indexPath.row]
let imageURL = postImage.postImageURL
cell.delegate = self
cell.postSingleImage.loadImageUsingCacheWithUrlString(imageURL)
cell.postSingleLikes.text = "\(postImageArray [indexPath.row].contributionPhotoLikes)"
cell.postSingleImage.isUserInteractionEnabled = true
let leftSwipe = UISwipeGestureRecognizer(target: self, action: #selector(self.mySwipeAction(swipe:)))
let rightSwipe = UISwipeGestureRecognizer(target: self, action: #selector(self.mySwipeAction(swipe:)))
leftSwipe.direction = UISwipeGestureRecognizerDirection.left
rightSwipe.direction = UISwipeGestureRecognizerDirection.right
cell.postSingleImage.addGestureRecognizer(leftSwipe)
cell.postSingleImage.addGestureRecognizer(rightSwipe)
let selectedCell = self.postImageArray [indexPath.row]
return cell
}
Я не хочу использовать собственную прокрутку строки TableView влево для удаления методов - для различных целей UX в данном конкретном случае.