我想将屏幕左侧的单元格拖出屏幕以将其删除。我不想显示表视图编辑模式的删除选项。显示删除选项是非常古老和传统的方法,这就是为什么我想借助手势来做到这一点。
答案 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!)
}
}
}
}
我认为您可以通过以下链接获得您对此疑问的所有答案: