在我的SecondViewController
我有UITableView
个自定义UITableViewCell
我有UIPanGestureRecognizer
我希望otherGestureRecognizer
是UIPanGestureRecognizer
时失败{1}}来自ViewController FirstViewController
单元格的UIPanGestureRecognizer
设置为自我,我尝试使用gestureRecognizer: shouldRequireFailureOfGestureRecognizer
:
override func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOfGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
let view = otherGestureRecognizer.view
if let view as? FirstViewController.view { // Obviously doesn't work
return true
}
return false
}
问题是,当从FirstViewController识别出手势时,如何使UIPanGestureRecognizer
UITableViewCell
失败?
答案 0 :(得分:0)
这看起来很愚蠢,但在我看来,你的问题纯粹是一个识别问题:这个手势识别器,otherGestureRecognizer
,我担心的特定手势识别器,我应该屈服于什么?我立即想到的是两个选择:
正如你正确指出的那样,你有view
。您是否可以询问有关此视图的问题,以帮助您识别它?它是否具有区别backgroundColor
或任何其他有助于此的功能?它的课程怎么样?它是一个普通的香草UIView,还是一些有特色的类?
您还拥有UIPanGestureRecognizer。因此,我可能使用的简单解决方案是将UIPanGestureRecognizer子类化:让我们调用子类MySpecialPanGestureRecognizer。这个子类没有特殊的功能,除了作为标识符之外没有其他目的!当您为视图提供其手势识别器时,请将该手势识别器设为MySpecialPanGestureRecognizer。现在您可以询问otherGestureRecognizer is MySpecialPanGestureRecognizer
。