• 手势识别器


    UIImageView

        这个类是iOS专门用来显示图片的类,几乎所有的图片,都是用这个类显示的。

    初始化方法:initWithImage:

     UIImageView *img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"2.png"]];

        img.frame = CGRectMake(100, 100, 200, 200);

    通过图片名来初始化一个UIImageView类。

    注意:    

    ImageView的默认是NO,是关闭交互。要将userInteractionEnabled(响应者链是否交互)设置为YES

    self.img.userInteractionEnabled = YES;

    手势

    手势是加在某个视图上的,否则手势无效。

    轻拍手势:

     // 轻拍手势

        // 创建轻拍手势识别器

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction:)];

    // 轻拍手势响应方法

    - (void)tapAction:(UITapGestureRecognizer *)sender{

        NSLog(@"我是轻拍手势..");

        // 换图片

       // 获取手势图片

        UIImageView *temp = (UIImageView *)sender.view;

        temp.image = [UIImage imageNamed:@"3.png"];

    }

    长按手势:

     // 长按手势   

        UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressAction:)];

        longPress.minimumPressDuration = 0.5;

    [self.img addGestureRecognizer:longPress];

    // 长按响应方法

    - (void)longPressAction:(UILongPressGestureRecognizer *)sender{

        NSLog(@"长按手势");

       

        if (sender.state == UIGestureRecognizerStateBegan) {

            NSLog(@"长按开始..");

            [UIView animateWithDuration:1 animations:^{

                // 修改view的frame

                CGRect temp1 = sender.view.frame;

                temp1.size.width +=50;

                temp1.size.height +=50;

                // 修改完成附回

                sender.view.frame = temp1;

               

                sender.view.alpha = 0.5;

            }];

        }else if (sender.state == UIGestureRecognizerStateEnded){

            NSLog(@"长按结束..");

            [UIView animateWithDuration:1 animations:^{

                // 修改view的frame

                CGRect temp1 = sender.view.frame;

                temp1.size.width -=50;

                temp1.size.height -=50;

                // 修改完成附回

                sender.view.frame = temp1;

               

                sender.view.alpha = 1;

            }];

        }

    }

    旋转手势:

      // 旋转   

        UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(rotationAction:)];

    [self.img addGestureRecognizer:rotation];

    // 旋转手势响应方法

    - (void)rotationAction:(UIRotationGestureRecognizer *)sender{

        NSLog(@"我是旋转手势..");

        sender.view.transform = CGAffineTransformRotate(sender.view.transform, sender.rotation);

        sender.rotation = 0;

    }

     

    捏合手势:

     // 捏合

        UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchAction:)];

    [self.img addGestureRecognizer:pinch];

    // 捏合手势响应方法

    - (void)pinchAction:(UIPinchGestureRecognizer *)sender{

        NSLog(@"我是捏合手势");

        sender.view.transform = CGAffineTransformScale(sender.view.transform, sender.scale, sender.scale);

        sender.scale = 1;

    }

     

    平移手势:

     

     // 平移

        UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panAction:)];

    [self.img addGestureRecognizer:pan];

    // 平移手势响应方法

     

    - (void)panAction:(UIPanGestureRecognizer *)sender{

        NSLog(@"我是平移手势..");

        CGPoint point = [sender translationInView:sender.view];

        sender.view.transform = CGAffineTransformTranslate(sender.view.transform, point.x, point.y);

        // 将偏移量归零

        [sender setTranslation:CGPointZero inView:sender.view];

    }

     

    边缘触发:

     

  • 相关阅读:
    骨灰级程序员20条编程经验
    js常用正则表达式
    css样式大全(整理版)
    ASP.NET中常用的26个优化性能方法
    C# 中的委托和事件
    Page的ResolveClientUrl与ResolveUrl读取路径
    层设定固定高度,内容超过高度,自动延伸
    Catalan数(卡塔兰数)
    称球问题
    zabbix分布式监控系统安装配置
  • 原文地址:https://www.cnblogs.com/Coder-GT/p/4872557.html
Copyright © 2020-2023  润新知