不使用IBOutlet在xib中获取手势识别器的参考

时间:2017-06-30 06:22:07

标签: ios xib gesture

我在xib文件中创建了一个单击并双击手势识别器,我想在一个类别中访问它,但是属性中的xib的引用出口并且它不能插入一个类别中,我可以使用代码来在函数viewDidLoad中访问手势识别器参考?

1 个答案:

答案 0 :(得分:1)

是的,你可以。视图会保留其手势识别器的列表,因此您只需要遍历它们。

for (UIGestureRecognizer *recognizer in self.gestureRecognizers)
{
    // You need a way to identify it here
}

在这种情况下,如果您的类别正在扩展视图控制器,您只需要知道哪个视图包含您想要的手势识别器。

@property(nonatomic, copy) NSArray<__kindof UIGestureRecognizer *> *gestureRecognizers;

https://developer.apple.com/documentation/uikit/uiview/1622542-gesturerecognizers?language=objc

编辑:

如果您的类别正在扩展ViewController,请将循环更改为self.view.gestureRecognizers(或您附加到其中的任何其他视图)