imageView.isUserInteractionEnabled = true 11 self.view.addSubview(self.imageView) 12 13 let guesture = UITapGestureRecognizer
imageView.isUserInteractionEnabled = true 12 self.view.addSubview(self.imageView) 13 14 let guesture = UITapGestureRecognizer
UIColor lightGrayColor]; [self.landBGViewaddSubview:self.landKindView]; UITapGestureRecognizer
在这里插入图片描述 场景2:商品列表的商品点击事件,设置低于右侧的操作按钮的点击事件 在这里插入图片描述 1.2 利用cancelsTouchesInView属性进行实现 案例1:tableView的UITapGestureRecognizer 的优先级低于cell的选中事件 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init]; [[tap rac_gestureSignal *cutTap = [[UITapGestureRecognizer alloc] init]; cutTap.cancelsTouchesInView = NO;// 设置tableView :cutTap]; 案例2:cell的选中事件低于按钮的点击事件 self.contentView.backgroundColor = kViewColor; UITapGestureRecognizer *cutTap = [[UITapGestureRecognizer alloc] init]; cutTap.cancelsTouchesInView
//点击空白收回键盘 -(void)touchReturnPad{ self.view.userInteractionEnabled = YES; UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(fingerTapped:)]; [self.view addGestureRecognizer:singleTap]; } -(void)fingerTapped:(UITapGestureRecognizer *)gestureRecognizer
) UISwipeGestureRecognizer(轻扫) UIRotationGestureRecognizer(旋转) UILongPressGestureRecognizer(长按) 2、 UITapGestureRecognizer 1.2 手势识别器的使用步骤 每一个手势识别器的用法都差不多,比如UITapGestureRecognizer的使用步骤: //创建手势识别器对象 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init]; //设置手势识别器对象的具体属性 // 连续敲击2次 tap.numberOfTapsRequired = 2; *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap:)]; // [tap [tap setDelegate:self]; [self.ImageView addGestureRecognizer:tap]; } - (void)tap:(UITapGestureRecognizer
scrollView]; imageView.userInteractionEnabled=YES;//注意:imageView默认是不可以交互,在这里设置为可以交互 UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapImage:)]; tap.numberOfTapsRequired tap.numberOfTouchesRequired=1;//单点触碰 [imageView addGestureRecognizer:tap]; UITapGestureRecognizer *doubleTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doubleTap:)];
本来我想用UITapGestureRecognizer来实现的,但是直接引发异常。不明白为什么UITapGestureRecognizer不能注册在UIScrollViews上。 //self.tapGestureRecoginzer=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTaps addGestureRecognizer:self.tapGestureRecoginzer]; #pragma mark - #pragma mark handle taps event -(void)handleTaps:(UITapGestureRecognizer
*tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(scanBigImageClick 添加恢复ImageView原始尺寸的tap点击事件 //添加点击事件同样是类方法 -> 作用是再次点击回到初始大小UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideImageView:)]; [backgroundView 给UIImageView添加手势 //添加点击事件UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc 调用封装类函数 //浏览大图点击事件-(void)scanBigImageClick:(UITapGestureRecognizer *)tap{ NSLog(@"点击图片"); UIImageView
具体实现如下: - (void)setTapActionWithBlock:(void (^)(void))block { UITapGestureRecognizer *tapGR = objc_getAssociatedObject tapGR) { tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(JL_handleActionForTapGesture 然后,处理单击事件,具体实现如下: - (void) JL_handleActionForTapGesture:(UITapGestureRecognizer *)sender { if (sender.state tapGR) { tapGR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(JL_handleActionForTapGesture kJLActionHandlerTapBlockKey value:tapGR policy:JLAssociationPolicyCopy]; } - (void) JL_handleActionForTapGesture:(UITapGestureRecognizer
如果一个控件继承于 UIControl,那么它将不需要手势 2.所有控件都可以添加手势 [控件 addGestureRecognizer: ] 3.iOS 系统提供的手势有哪些 UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapAction:)] ; [_imageView addGestureRecognizer:singleTap]; 双击手势 添加 numberOfTapsRequired属性 能判断点击次数 UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTapAction:)] *threeTop = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(TapGestureAction:)]
images[i]] placeholderImage:[UIImage imageNamed:@"123"]]; img.userInteractionEnabled = YES; UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hiddenPics:)]; * twoTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(makePicBigger:)]; 双击没有识别到的时候识别单击手势 [tap requireGestureRecognizerToFail:twoTap]; } } - (void)hiddenPics:(UITapGestureRecognizer removeFromSuperview]; [UIApplication sharedApplication].statusBarHidden = NO; } - (void)makePicBigger:(UITapGestureRecognizer
*tap1 = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap1:)]; [tap1 addTarget *)tap { NSLog(@"%s",__func__); } -(void)tap2:(UITapGestureRecognizer *)tap { NSLog(@"%s",__func 看一个例子 - (void)viewDidLoad { [super viewDidLoad]; UITapGestureRecognizer *tap1 = [[UITapGestureRecognizer *)tap { NSLog(@"tap1手势触发"); } -(void)tap2:(UITapGestureRecognizer *)tap { NSLog(@"tap2手势触发") 点击手势——UITapGestureRecognizer 点击手势十分简单,支持单击和多次点击,在我们手指触摸屏幕并抬起手指时会进行触发,其中有如下两个属性我们可以进行设置: //设置点击次数,默认为单击
:扩展了 UIAlertView,UIActionView,UIButton 等 最常用的是 UIKit Category,它为 UIAlertView,UIActionSheet,UIButton,UITapGestureRecognizer andDidDismissBlock:^(UIActionSheet *sheet, NSInteger index) { }] showInView:self.view]; UIButton 和 UITapGestureRecognizer init]; [button bk_addEventHandler:^(id sender) { } forControlEvents:UIControlEventTouchUpInside]; UITapGestureRecognizer *tapGestureRecognizer = [UITapGestureRecognizer bk_recognizerWithHandler:^(UIGestureRecognizer *sender
{ self.view.endEditing(true); } View添加点击事件 var tapRecognizer1:UITapGestureRecognizer! ; var tapRecognizer2:UITapGestureRecognizer!; var tapRecognizer3:UITapGestureRecognizer! ; //初始化 tapRecognizer1 = UITapGestureRecognizer(target: self, action: "presentImagePicker:"); tapRecognizer2 = UITapGestureRecognizer(target: self, action: "presentImagePicker:"); tapRecognizer3 = UITapGestureRecognizer tapRecognizer3); card3Image.userInteractionEnabled = true; func presentImagePicker(gestureRecognizer: UITapGestureRecognizer
subLayer.cornerRadius = 50; [self.view.layer addSublayer:self.subLayer]; //创建一个手势 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap:)]; //设置几根手指点 ; /* 基础动画关注的知识两个点 第一个点不设置的话就是当前点 有属性toValue表示下一点(目的点) 还有就是一定要记得给动画设置代理 */ 实现手势的代码: -(void)tap:(UITapGestureRecognizer
创建一个点击事件,点击时触发labelClick方法 UITapGestureRecognizer *labelTapGestureRecognizer = [[UITapGestureRecognizer
单击 self.showImageView.isUserInteractionEnabled = true; let tapImgOnce = UITapGestureRecognizer.init self.showImageView.addGestureRecognizer(tapImgOnce) 调用的事件 @objc func tapImgViewHandle(image:UIImageView){ } 双击 let tapImgTwice = UITapGestureRecognizer.init
self.userInteractionEnabled = YES; [self addSubview:_imageView]; _imageView.tag = 10; //默认点击第一张 UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doDoubleTap:)]; imageName = _imageArr[_currentIndex]; _imageView.tag = _currentIndex+10; //增加点击手势 UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(doDoubleTap:)]; addGestureRecognizer:doubleTap]; return [UIImage imageNamed:imageName]; } 点击图片触发事件 - (void)doDoubleTap:(UITapGestureRecognizer
forEvent:进行方法实现的交换,来控制事件的响应频率 SEL selA = @selector(sendAction:to:forEvent:); 如果按钮的事件处理采用添加UITapGestureRecognizer 手势的实现的,同理也是可以类似地进行Method Swizzling实现响应频率的限制 UITapGestureRecognizer *cutTap = [[UITapGestureRecognizer