1、UITapGestureRecognizer //创建单击手势
- (void)viewDidLoad
{
[super viewDidLoad];
self.viewtest=[[UIView alloc]initWithFrame:CGRectMake(50, 20, 100, 100)];//创建一个UIView视图
self.viewtest.backgroundColor=[UIColor redColor];//给视图设置红色背景
[self.view addSubview:self.viewtest];//添加当前视图
UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(changeColor:)]; //创建点击手势并设置动作用来改变UIView视图的颜色
tap.numberOfTapsRequired=1; //点击手势次数为一次
(如果要实现双击效果,就让点击次数numberOfTapsRequired=2)
[self.viewtest addGestureRecognizer:tap];//给UIView视图添加单击手势
}
//实现单击手势
-(void)changeColor:(UITapGestureRecognizer*)sender
{
self.viewtest.backgroundColor=[UIColor greenColor]; //点击视图让红色背景变成绿色
}
![[转载]IOS开发之手势UIGestureRecognizer [转载]IOS开发之手势UIGestureRecognizer](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
2、UILongPressGestureRecognizer //创建长按手势
- (void)viewDidLoad
{
[super viewDidLoad];
self.viewtest=[[UIView alloc]initWithFrame:CGRectMake(50, 20, 100, 100)];//创建一个UIView视图
self.viewtest.backgroundColor=[UIColor redColor];//给视图设置红色背景
[self.view addSubview:self.viewtest];//添加当前视图
UILongPressGestureRecognizer *longP=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longpress:)];
[self.viewtest addGestureRecognizer:longP];//给UIView视图添加长按手势
}
//实现长按手势
-(void)longpress:(UILongPressGestureRecognizer*)sender
{
self.viewtest.backgroundColor=[UIColor greenColor]; //点击视图让红色背景变成绿色
}
3、UISwipeGestureRecognizer //创建轻扫手势
- (void)viewDidLoad
{
[super viewDidLoad];
self.viewtest=[[UIView alloc]initWithFrame:CGRectMake(50, 20, 250, 100)];//创建一个UIView视图
self.viewtest.backgroundColor=[UIColor redColor];//给视图设置红色背景
[self.view addSubview:self.viewtest];//添加当前视图
UISwipeGestureRecognizer *swip=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swip:)];
swip.direction=UISwipeGestureRecognizerDirectionLeft;//手势方向向左
(系统提供了四种手势方向,上下左右:
UISwipeGestureRecognizerDirectionLeft;//手势方向向左
UISwipeGestureRecognizerDirectionRight;//手势方向向右
UISwipeGestureRecognizerDirectionUp;//手势方向向上
UISwipeGestureRecognizerDirectionDown;//手势方向向下
)
[self.viewtest addGestureRecognizer:swip];
}
-(void)swip:(UISwipeGestureRecognizer*)sender
{
self.viewtest.backgroundColor=[UIColor greenColor]; //向左滑动手指让红色背景变成绿色
}
4、UIPanGestureRecognizer //创建拖拽手势
- (void)viewDidLoad
{
[super viewDidLoad];
self.viewtest=[[UIView alloc]initWithFrame:CGRectMake(50, 20, 100, 100)];//创建一个UIView视图
self.viewtest.backgroundColor=[UIColor redColor];//给视图设置红色背景
[self.view addSubview:self.viewtest];//添加当前视图
UIPanGestureRecognizer *pan=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(pan:)];
[self.viewtest addGestureRecognizer:pan];
}
CGPoint startPoint;
-(void)pan:(UIPanGestureRecognizer*)sender
{
startPoint=self.viewtest.center;//视图起始点
CGPoint endPoint=[sender locationInView:self.view];//终止点(在父视图self.view上)
self.viewtest.transform=CGAffineTransformMakeTranslation(endPoint.x-startPoint.x, endPoint.y-startPoint.y);//拖拽视图移动到的地方
}
5、UIPinchGestureRecognizer //创建捏合手势
- (void)viewDidLoad
{
[super viewDidLoad];
self.viewtest=[[UIView alloc]initWithFrame:CGRectMake(130, 200, 100, 100)];//创建一个UIView视图
self.viewtest.backgroundColor=[UIColor redColor];//给视图设置红色背景
[self.view addSubview:self.viewtest];//添加当前视图
UIPinchGestureRecognizer *pinch=[[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinch:)];
[self.viewtest addGestureRecognizer:pinch];
}
-(void)pinch:(UIPinchGestureRecognizer*)sender
{
self.viewtest.transform=CGAffineTransformMakeScale(sender.scale, sender.scale);//两个手指操作放大缩小
}
6、UIRotationGestureRecognizer //创建旋转手势
- (void)viewDidLoad
{
[super viewDidLoad];
self.viewtest=[[UIView alloc]initWithFrame:CGRectMake(130, 200, 100, 100)];//创建一个UIView视图
self.viewtest.backgroundColor=[UIColor redColor];//给视图设置红色背景
[self.view addSubview:self.viewtest];//添加当前视图
UIRotationGestureRecognizer*rotation=[[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotation:)];
[self.viewtest addGestureRecognizer:rotation];
}
-(void)rotation:(UIRotationGestureRecognizer*)sender
{
//修改当前视图的矩阵,传入一个变化的角度值。
self.viewtest.transform=CGAffineTransformMakeRotation(sender.rotation);
}