找出已设置手势的视图

时间:2015-04-10 03:38:24

标签: swift uigesturerecognizer

在我的SecondViewController我有UITableView个自定义UITableViewCell我有UIPanGestureRecognizer我希望otherGestureRecognizerUIPanGestureRecognizer时失败{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失败?

1 个答案:

答案 0 :(得分:0)

这看起来很愚蠢,但在我看来,你的问题纯粹是一个识别问题:这个手势识别器,otherGestureRecognizer,我担心的特定手势识别器,我应该屈服于什么?我立即想到的是两个选择:

  • 正如你正确指出的那样,你有view。您是否可以询问有关此视图的问题,以帮助您识别它?它是否具有区别backgroundColor或任何其他有助于此的功能?它的课程怎么样?它是一个普通的香草UIView,还是一些有特色的类?

  • 您还拥有UIPanGestureRecognizer。因此,我可能使用的简单解决方案是将UIPanGestureRecognizer子类化:让我们调用子类MySpecialPanGestureRecognizer。这个子类没有特殊的功能,除了作为标识符之外没有其他目的!当您为视图提供其手势识别器时,请将该手势识别器设为MySpecialPanGestureRecognizer。现在您可以询问otherGestureRecognizer is MySpecialPanGestureRecognizer