我有一个带有垂直 ScrollView 的 UIcollectionView,每行包含一个 UIView,在 uiview 内我以这种方式附加了一个平移手势:
let swipe = UIPanGestureRecognizer(target: self, action: "swipe:")
cell.addGestureRecognizer(swipe)
方法是这样的:
func swipe(sender: UIPanGestureRecognizer) {
let point = sender.velocityInView(sender.view!)
switch sender.state {
case .Ended:
if point.x < 0 {
selectedMessageForDetails = sender.message!
self.performSegueWithIdentifier("newView", sender: nil)
}
default:break
}
}
一切正常,但是这样当我在单元格中水平滑动时,会调用滑动方法,但是如果我垂直滑动, ScrollView 不起作用,我该如何解决这个问题?
我希望拥有与 Whatsapp 消息相同的功能,如果我在气泡中从右向左滑动,我可以打开消息详细信息,但如果我垂直滑动,我可以滚动 ScrollView !
有什么想法吗?
最佳答案
您可以向 self.view 提供手势,而不是向单个单元格提供手势
let swipe = UIPanGestureRecognizer(target: self, action: "swipe:")
self.view.addGestureRecognizer(swipe)
识别可以在操作方法中使用的当前单元格
let point = swipe .locationInView(self.view)
let indexPath = collectionview.indexPathForItemAtPoint(point)
关于objective-c - UIScrollView 内的水平平移手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37180778/