我正在尝试在我的UITableView中实现单手势滑动操作,您可以在其中滑动以显示操作按钮,并继续一直滑动以激活默认操作(例如“删除”或“标记为已读”在邮件中。
我正在我的代表中实施-tableView:editActionsForRowAtIndexPath:
。我的按钮出现,当我点按它时它会起作用,但它不会被完全滑动激活。
我已经在我的数据源中使用-tableView:commitEditingStyle:forRowAtIndexPath:
和-tableView:canEditRowAtIndexPath:
进行了尝试。只有后者被调用,但似乎没有任何区别。
我还需要做些什么吗?或者使用标准API实际上无法实现此行为?
答案 0 :(得分:0)
我会检查手势识别器的目标功能中的滑动是否超过了某个阈值。
试试这个
func swipeRight(sender: UIGestureRecognizer){
let threshold : CGFloat = 100;
var startLocation = CGPoint()
if (sender.state == UIGestureRecognizerState.Began){
startLocation = sender.locationInView(self.view)
}else if (sender.state == UIGestureRecognizerState.Ended){
let stopLocation = sender.locationInView(self.view)
let distanceX = stopLocation.x - startLocation.x
let distanceY = stopLocation.y - startLocation.y
let distance = sqrt(distanceX*distanceX + distanceY*distanceY )
if (distance > threshold ){
//Delete or Edit Row Here
}
}
}