2、利用代理方法- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 允许tableView上响应多手势
3、利用代理方法- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer,控制添加的手势是否响应
通常在tableView上添加手势,会有冲突,比如在tableView上添加pan手势,就会让tableView的无法滚动,在tableViewCell上添加tap手势,就会让tableViewCell的didSelectCell方法无法响应等等,利用代理方法 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 虽然能让添加的手势和原来的事件都响应,但是会造成一次性响应多个事件,这时候就需要用代理方法gestureRecognizerShouldBegin:来控制,添加的手势是否需要响应,并且不会阻断事件传递,这样就能很好的解决冲突问题。
1、拍击UITapGestureRecognizer (任意次数的拍击)
2、向里或向外捏UIPinchGestureRecognizer (用于缩放)
3、摇动或者拖拽UIPanGestureRecognizer (拖动)
4、擦碰UISwipeGestureRecognizer (以任意方向)
5、旋转UIRotationGestureRecognizer (手指朝相反方向移动)
6、长按UILongPressGestureRecognizer (长按)
UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]
btn.backgroundColor = [UIColor redColor]
[self.view addSubview:btn]
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)]//创建手势
[btn setUserInteractionEnabled:YES]//设置启用用户交互
[btn addGestureRecognizer:pan]//把手势添加到控件
- (void) handlePan: (UIPanGestureRecognizer *)rec{
// NSLog(@"xxoo---xxoo---xxoo")
CGPoint point = [rec translationInView:self.view]
//该方法返回在横坐标上、纵坐标上拖动了多少像素
NSLog(@"%f,%f",point.x,point.y)
rec.view.center = CGPointMake(rec.view.center.x + point.x, rec.view.center.y + point.y)
//rec.view 指的是把rec添加到那个控件上的
// 因为拖动起来一直是在递增,所以每次都要用setTranslation:方法制0这样才不至于不受控制般滑动出视图
[rec setTranslation:CGPointMake(0, 0) inView:self.view]
}
//缩放
UIPinchGestureRecognizer *ping = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)]
[btn setUserInteractionEnabled:YES]//设置启用用户交互
[btn addGestureRecognizer:ping]
-(void) handlePinch:(UIPinchGestureRecognizer *)rec
{
NSLog(@" recognizer.scale------%f",rec.scale
)//缩放的倍数,
// view.transform 为原来的 状态;
rec.view.transform=CGAffineTransformScale(rec.view.transform, rec.scale,rec.scale)
}
打开手机设置按钮。在设置界面中点击“通用”。在通用界面中点击“辅助功能”。接着选择“便捷访问”,点击“辅助触控”。点击“辅助触控”并打开,点击“自定顶层菜单”。点击“+”图标。在自定顶层菜单中点击“加”图标,然后在功能区中选择“手势”即可。演示机型:Iphone 12系统版本:iOS14
1、打开手机设置按钮。
2、在设置界面中点击“通用”。
3、在通用界面中点击“辅助功能”。
4、接着选择“便捷访问”,点击“辅助触控”。
5、点击“辅助触控”并打开,点击“自定顶层菜单”。
6、点击“+”图标。
7、在自定顶层菜单中点击“加”图标,然后在功能区中选择“手势”即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)