不使用 IBOutlet 在 xib 中获取手势识别器的参考
Get reference of gesture recognizer in xib not using IBOutlet
我在一个xib文件中创建了一个单击和双击手势识别器,我想在一个类别中访问它,但是属性中的xib的Referring Outlet无法插入到一个类别中,我可以使用代码访问函数 viewDidLoad
中的手势识别器参考吗?
是的,你可以。视图保留其手势识别器列表,因此您只需要遍历它们即可。
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(或您将其附加到的任何其他视图)
我在一个xib文件中创建了一个单击和双击手势识别器,我想在一个类别中访问它,但是属性中的xib的Referring Outlet无法插入到一个类别中,我可以使用代码访问函数 viewDidLoad
中的手势识别器参考吗?
是的,你可以。视图保留其手势识别器列表,因此您只需要遍历它们即可。
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(或您将其附加到的任何其他视图)