IOS开发之手势UIGestureReco…

报告大王,非常详细,自己又懒!转啦,亲!
      在IOS开发中,除了用 touchesBegan 、touchesMoved 、touchesEnded 这组触摸方法来控制使用者的手指触控外,也可以用 UIGestureRecognizer 的衍生类別来进行判断。用 UIGestureRecognizer 的好处在于有现成的手势,开发者不用自己计算手指移动轨迹。 UIGestureRecognizer的衍生类別有以下几种: 
        UITapGestureRecognizer  //创建单击手势
      UIPinchGestureRecognizer  // 创建捏合手势
      UIRotationGestureRecognizer  // 创建旋转手势
      UISwipeGestureRecognizer  // 创建轻扫手势
      UIPanGestureRecognizer  // 创建拖拽手势
      UILongPressGestureRecognizer  // 创建长按手势

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

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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值