UITableViewController.swiftとUITableViewCell.swiftを使用してCoreDataを使用してアプリケーションを構築しています。TableViewCellでスワイプした後でTableViewControllerの行を削除する
UITableViewCell.swiftでUIPanGestureRecognizerを使用してClear To-doアプリのように行を削除しようとしています。行を左右にパンすることはできますが、選択した行のindexPathを取得し、すべてのデータが格納されているUITableViewController.swiftで削除する方法がわかりません。
EduDicTableViewCell.swift:読書のための
override func awakeFromNib() {
super.awakeFromNib()
let recognizer = UIPanGestureRecognizer(target: self, action: #selector(EduDicTableViewCell.handlePan(_:)))
recognizer.delegate = self
addGestureRecognizer(recognizer)
}
//MARK: - horizontal pan gesture methods
func handlePan(recognizer: UIPanGestureRecognizer) {
// 1
if recognizer.state == .Began {
// when the gesture begins, record the current center location
originalCenter = center
}
// 2
if recognizer.state == .Changed {
let translation = recognizer.translationInView(self)
center = CGPointMake(originalCenter.x + translation.x, originalCenter.y)
// has the user dragged the item far enough to initiate a delete/complete?
deleteOnDragRelease = frame.origin.x < -frame.size.width/2.0
}
// 3
if recognizer.state == .Ended {
let originalFrame = CGRect(x: 0, y: frame.origin.y,
width: bounds.size.width, height: bounds.size.height)
if deleteOnDragRelease {
print("send it")
} else {
UIView.animateWithDuration(0.2, animations: {self.frame = originalFrame})
print("Bounced Back")
}
}
}
ありがとう!その後、
protocol EduDicTableViewCellDelegate {
func didSwipeDelete(cell: UITableViewCell)
}
とANを追加します。
完璧でした!ありがとうございます! –
優れています。ありがとうございました! – Ibrahim