手势总结


只有多尝试,多写才能更好。


// 手势识别器
    
    // 1.轻拍手势
    
    // 手势需要在定义时绑定一个触发方法(SEL)
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
    
    // 轻拍的设置
    // 需要轻拍两次 才响应事件
    tap.numberOfTapsRequired = 2;
    
    // 需要用几个手指去拍
    tap.numberOfTouchesRequired = 2;
    
    // 给view添加手势
    [imageView addGestureRecognizer:tap];
    [tap release];
    
    // 2.长按手势
    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressAction:)];
    
    // 长按 触发方法 所需要的事件
    
    longPress.minimumPressDuration = 3;
    // 长按 允许用户移动手指的距离
    longPress.allowableMovement = 100;
    
    [imageView addGestureRecognizer:longPress];
    [longPress release];
    
    // 3.轻扫手势 (swipe)
    
    UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeAction:)];
    
    // 设置 轻扫 的方向 (一个对象只能一个方向 要不左右 要不上下)!!!
    swipe.direction = UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight;
    [imageView addGestureRecognizer:swipe];

    // 4. 拖拽
    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panAction:)];

    [imageView addGestureRecognizer:pan];
    
    // 5.旋转
    UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(roration:)];
    [imageView addGestureRecognizer:rotation];
    
    // 6.捏合手势
    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchAction:)];
    [imageView addGestureRecognizer:pinch];
    
    // 7.屏幕边缘拖拽
    UIScreenEdgePanGestureRecognizer *sceenEdge = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(sceenEdgeAction:)];
    sceenEdge.edges = UIRectEdgeLeft;
    [imageView addGestureRecognizer:sceenEdge];

    // 将UIImageView的用户交互打开,使他能响应轻拍
    [imageView setUserInteractionEnabled:YES];


- (void)tapAction:(UITapGestureRecognizer *)tap
{
    NSLog(@"轻拍");
}

- (void)longPressAction:(UILongPressGestureRecognizer *)longPress
{
    // 当长按手势开始触发时
    if (longPress.state == UIGestureRecognizerStateBegan) {
        NSLog(@"长按");
    }
}

- (void)swipeAction:(UISwipeGestureRecognizer *)swipe
{
    NSLog(@"轻扫");
}

- (void)panAction:(UIPanGestureRecognizer *)pan
{
    NSLog(@"拖拽");
    
    // 通过手势的view属性  获取当前手势添加到的 view
    UIImageView *imageView = (UIImageView *) pan.view;
    // 获取到 当前手指接触的点
    CGPoint point = [pan translationInView:imageView];
    // 让view变形
    imageView.transform = CGAffineTransformTranslate(imageView.transform, point.x, point.y);
    [pan setTranslation:CGPointZero inView:imageView];
    
}

- (void)roration:(UIRotationGestureRecognizer *)rotation
{
    NSLog(@"旋转");
    
    UIImageView *imageView = (UIImageView *) rotation.view;
    imageView.transform = CGAffineTransformRotate(imageView.transform, rotation.rotation);
    rotation.rotation = 0;
    
}
- (void)pinchAction:(UIPinchGestureRecognizer *)pinch
{
    NSLog(@"捏合");
    UIImageView *imageView = (UIImageView *) pinch.view;
    // 在x,y轴方向 放大/缩小
    imageView.transform = CGAffineTransformScale(imageView.transform, pinch.scale, pinch.scale);
    pinch.scale = 1;
}

- (void)sceenEdgeAction:(UIScreenEdgePanGestureRecognizer *)sceen
{
    NSLog(@"屏幕边缘");
    
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值