UIImageView 7种手势基本介绍

2024-05-12 14:58

本文主要是介绍UIImageView 7种手势基本介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  

//UIImageView的使用

    UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 20, 280, 300)];

    [imageView setBackgroundColor:[UIColor redColor]];

    [self.view addSubview:imageView];

    [imageView release];

    //利用图片产生一个UIImage对象

    UIImage *image = [UIImage imageNamed:@"11.png"];

//    UIImage *image1 = [UIImage imageWithContentsOfFile:@"/Users/dlios/Desktop/u=596837638,1893145150&fm=21&gp=0.jpg"];

    //把这张图片加载到相框(UIImageView

    imageView.image = image;

//    imageView.image = image1;

    

    

//手势识别器

    

//1.轻拍手势

    

    //手势需要在定义是绑定一个触发方法(SEL

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

    

    //  轻拍的设置

    //  需要轻拍两次才能响应事件

    tap.numberOfTapsRequired = 2;

    //  手指的个数

    tap.numberOfTouchesRequired = 2;

    

    

    //view添加一个手势

    [imageView addGestureRecognizer:tap];

    [tap release];

    

//2.长按手势(longPress

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

    [imageView addGestureRecognizer:longPress];

    [longPress release];

    //长按 触发方法   所需要的事件

    longPress.minimumPressDuration = 0.5;

    // 长按时 允许用户移动手指的距离

    longPress.allowableMovement = 100;

    

//3. 清扫手势(swipe

    UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeAction:)];

    //设置清扫的方向

    swipe.direction = UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionUp | UISwipeGestureRecognizerDirectionDown;

    [imageView addGestureRecognizer:swipe];

    [swipe release];

    

//4.拖拽手势(pan

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

    [imageView addGestureRecognizer:pan];

    [pan release];

//5.旋转手势(ratation

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

    [imageView addGestureRecognizer:rotation];

    [rotation release];

    

//6.捏合手势(pinch

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

    [imageView addGestureRecognizer:pinch];

    [pinch release];

//7.屏幕边缘拖拽

    UIScreenEdgePanGestureRecognizer *screenEdgePan = [[UIScreenEdgePanGestureRecognizer alloc]initWithTarget:self action:@selector(screenPan:)];

//设置屏幕边缘拖拽的方向

    screenEdgePan.edges = UIRectEdgeLeft;

    

    [imageView addGestureRecognizer:screenEdgePan];

    [screenEdgePan release];

    

    

    

    

    

    //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 p = [pan translationInView:imageView];

    

    //view变形

    imageView.transform = CGAffineTransformTranslate(imageView.transform, p.x, p.y);

    //重置手势的属性

    [pan setTranslation:CGPointZero inView:imageView];

}

//旋转的触发方法

- (void)rotationAction:(UIRotationGestureRecognizer *)rotation

{

    NSLog(@"旋转");

    //获取到当前手势添加到得view

    UIImageView *imageView = (UIImageView *)rotation.view;

    //view旋转  利用旋转手势的旋转弧度

    imageView.transform = CGAffineTransformRotate(imageView.transform, rotation.rotation);

    

    rotation.rotation = 0;

}

//捏合的触发方法

- (void)pinchAction:(UIPinchGestureRecognizer *)pinch

{

    NSLog(@"捏合");

    //获取当前的view

    UIImageView *imageView = (UIImageView *)pinch.view;

    //xy轴方向 放大、缩小

    imageView.transform = CGAffineTransformScale(imageView.transform, pinch.scale, pinch.scale);

    pinch.scale = 1;

    

}

//屏幕边缘拖拽

- (void)screenPan:(UIScreenEdgePanGestureRecognizer *)screenPan

{

    NSLog(@"屏幕边缘拖拽");

}



这篇关于UIImageView 7种手势基本介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/982947

相关文章

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁