objective c-多个gestureRecognizer问题

问题描述

多个gestureRecognizer问题
在parentClass(继承自UIView)中:

[self addGestureRecognizer:_tapGesture]; // _tapGesture is UITapGestureRecognizer with delegate on parentClass

在someClass中:

[_myImageView addGestureRecognizer:_imageViewGestureRecognizer]; // _imageViewGestureRecognizer is UITapGestureRecognizer with delegate on someClass

问题:我每次点击ImageView时,两个手势都会被触发。我只要_imageViewGestureRecognizer 触发。

试过:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)recognizer shouldReceiveTouch:(UITouch *)touch {   UIView *gestureView = recognizer.view;   CGPoint point = [touch locationInView:gestureView];   UIView *touchedView = [gestureView hitTest:point withEvent:nil];   if ([touchedView isEqual:_imageViewGestureRecognizer]) {     return NO;   }   return YES;}

解决方案

拿到附加手势的view后,判断view的类型,即可相应做出处理

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)recognizer shouldReceiveTouch:(UITouch *)touch {   UIView *gestureView = recognizer.view;  if ([gestureView isKindOfClass:[UIImageView class]]) {         ///...to do    }}
时间: 2024-11-03 08:25:42

objective c-多个gestureRecognizer问题的相关文章

用Dojo Objective Harness对Web 2.0应用程序进行单元测试

单元测试是保证软件开发质量的一个重要部分,对于敏捷和极限编程开发方法尤其如此.通常,对 Web 2.0 客户端用户界面进行自动的单元测试很困难,所以很少有人去做尝试.然而,Dojo 提供了一个单元测试工具,借此可以评估 JavaScript 的功能及用户界面的可视性.经过这个工具彻底测试过的用户界面最终包含的 Bug 数量会极大的减少.本文阐述了 Dojo Objective Harness (DOH) 的主要特点并通过与其它 Web 2.0 应用程序测试工具的比较展示了其强大的功能. 单元测试

Objective C从远程url下载图片方法汇总

  本文给大家分享了2则使用Objective C从远程url下载图片的方法,都是个人项目中使用的,汇总下推荐给大家,有需要的小伙伴可以参考下. Objective C从远程url下载图片 ? 1 2 3 4 5 6 7 8 - (UIImage *) getImageFromURL: (NSString *)theURL { UIImage *theImage = NULL; NSString *imageFileName = [BT_strings getFileNameFromURL:th

iPhone objective c 截屏代码

  objective c 截屏代码 -(void)save{ UIGraphicsBeginImageContext(mybackgroundview.bounds.size); //currentView 当前的view [mybackgroundview.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();

IOS-Swift、Objective-C、C++混合编程

1.Objective-C调用C++代码 后缀为m文件的是Objective-C的执行文件,而后缀为mm文件的是Objective-C++文件. 直接在Objective-C中是无法调用C++代码的,所以如果需要在Objective-C调用C++语言就需要直接将后缀m文件改为mm,然后就可以调用C++代码了. Objective-C兼容C,Objective-C++兼容C.C++. 接下来是在OC工程中创建C++文件,并调用C++的代码: 然后在OC文件中直接用C++的语法调用C++,所以前提是

关联-IOS gestureRecognizer的 问题

问题描述 IOS gestureRecognizer的 问题 我有很多个View控件,在每个view 上 我想实现滑动的功能,有办法用一个gestureRecognizer去关联这么多个View控件吗?当对滑动事件进行想应的时候,怎么获取当前操作的view呢 解决方案 给每个view添加一个gestureRecognizer,这些gestureRecognizer的action可以全部指向同一个方法,在响应事件时可以拿到对应的gestureRecognizer,通过调用gestureRecogn

objective c-objectiveC的class返回了-(id)

问题描述 objectiveC的class返回了-(id) 在C#中,如果初始化类会返回它本身,比如: public class MyClass{ public int Id; public string Name; } MyClass classInstance = new MyClass(); : : 我知道C#与objective不一样,但是我不明白objective-c是怎么转换的.我发现如果OC创建一个方法,不会返回本身,而是返回一个id?比如: - (id)initWithID:(N

ios 引用计数-objective-c关于引用计数问题

问题描述 objective-c关于引用计数问题 #import @interface ViewController : UIViewController @property(nonatomic,retain)NSString *string1; @property(nonatomic,retain)NSString *string2; @end @implementation ViewController (void)viewDidLoad { [super viewDidLoad]; NSL

ios开发-小白跪求解决方案,objective c 一个出错问题,具体看问题补充

问题描述 小白跪求解决方案,objective c 一个出错问题,具体看问题补充 照着书模拟了个小软件,屏幕上两个按钮,一个edit 一个new 点击new可以创建新的便签,点击edit可以删除便签,也可以移动便签,但我无意间在移动完便签后点了new按钮,软件崩溃,,,但是在edit的时候再点击new按钮却可以接着添加新的标签....只有移随便移动标签后不可以添加标签,求大神解决如何在移动完以后能接着点new创建标签或者最起码不创建标签但别让软件崩溃... 部分代码如下: (void)table

Objective—C语言的新魅力——Nullability、泛型集合与类型延拓

Objective-C语言的新魅力 一.引言         在Xcode7中,iOS9的SDK已经全面兼容了Objective-C的一些新特性和新功能.这些功能都只作用于编译期,对程序的运行并没有影响,因此,它可以很好的向下进行兼容,无缝的衔接低版本的iOS系统,那么这些特性有什么样的用处呢,作为开发者,我保证你一定会爱上他们,如果你可以将这些新特性都应用于你的开发,你的开发效率和代码质量,相比之前,会有一个很大的提升. 二.Nullability检测的支持         在swift语言中