ios – UIGestureRecognizer知道它被调用的对象是什么?

ios – UIGestureRecognizer知道它被调用的对象是什么?,第1张

概述我有一个UIGestureRecognizer,我想在两个不同的UIView上工作,这两个UIView都在UiViewController的相同视图层次结构中. UIGestureRecognizer的 *** 作在每个上都是一样的,所以我希望调用相同的函数(很明显),我将在运行时告诉我正在处理哪些UIViews.但是怎么样?我看不出UIGestureRecognizer正在携带对象信息.我是否遗漏了文档 我有一个UIGestureRecognizer,我想在两个不同的UIVIEw上工作,这两个UIVIEw都在UiVIEwController的相同视图层次结构中. UIGestureRecognizer的 *** 作在每个上都是一样的,所以我希望调用相同的函数(很明显),我将在运行时告诉我正在处理哪些UIVIEws.但是怎么样?我看不出UIGestureRecognizer正在携带对象信息.我是否遗漏了文档中的行或者gestureRecognizer不知道它被附加到哪个对象上?似乎语言的意义在于它会知道. @H_502_2@或者,也许我误解了班级的意图,我不应该:

UITapGestureRecognizer *dblTap = [[UITapGestureRecognizer alloc] initWithTarget: self                                         action: @selector(handleDblTap:)];   [vIEwA addGestureRecognizer: dblTap]; [vIEwB addGestureRecognizer: dblTap];
@H_502_2@然后期望能够:

-(voID)handleDblTap: (UIGestureRecognizer *)gestureRecognizer{     if (vIEwA)...
@H_502_2@如果事实上UIGestureRecognizer不支持同时附加到多个对象,那么,如果你知道为什么它不支持这个,你能教育我吗?谢谢您的帮助.

解决方法 标准是每个识别器一个视图.但您仍然可以有效地使用一种处理程序方法. @H_502_2@你会像这样实例化识别器:

UITapGestureRecognizer *dblTapVIEwA = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDblTap:)];   [vIEwA addGestureRecognizer: dblTapVIEwA]; UITapGestureRecognizer *dblTapVIEwB = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDblTap:)];[vIEwB addGestureRecognizer: dblTapVIEwB];
@H_502_2@那么你的处理程序方法可能类似于:

-(voID)handleDblTap:(UITapGestureRecognizer *)tapRec{    if (tapRec.vIEw == vIEwA){        // double tap vIEw a    } else if (tapRec.vIEw == vIEwB) {        // double tap vIEw b    }}
总结

以上是内存溢出为你收集整理的ios – UIGestureRecognizer知道它被调用的对象是什么?全部内容,希望文章能够帮你解决ios – UIGestureRecognizer知道它被调用的对象是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1109617.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存