如何在平移手势的帮助下删除tableviewcell?

时间:2017-08-14 10:35:18

标签: ios

我想将屏幕左侧的单元格拖出屏幕以将其删除。我不想显示表视图编辑模式的删除选项。显示删除选项是非常古老和传统的方法,这就是为什么我想借助手势来做到这一点。

1 个答案:

答案 0 :(得分:1)

将此添加到您的程序:

let recognizer = UIPanGestureRecognizer(target: self, action: Selector(("handlePan")))
recognizer.delegate = self
addGestureRecognizer(recognizer)

然后make方法使用这个识别器:

func handlePan(recognizer: UIPanGestureRecognizer) {
     if recognizer.state == .began {
        originalCenter = center
     }
     if recognizer.state == .changed {
        let transition = recognizer.translation(in: self)
        center = CGPoint(x: originalCenter.x + transition.x, y: originalCenter.y)
        deleteOnDragRelease = frame.origin.x < -frame.size.width / 2.0
     }
     if recognizer.state == .ended {
        let originalFrame = CGRect(x: 0, y: frame.origin.y, width: bounds.size.width, height: bounds.size.height)
        if !deleteOnDragRelease {
            UIView.animate(withDuration: 0.2, animations: {self.frame = originalFrame})
        }
        if deleteOnDragRelease {
            if delegate != nil && toDoItem != nil {
               delegate!.toDoItemDeleted(todoitem: toDoItem!)
            }
        }
    }
}

我认为您可以通过以下链接获得您对此疑问的所有答案:

https://www.raywenderlich.com/77974/making-a-gesture-driven-to-do-list-app-like-clear-in-swift-part-1