手势识别器(UIImageView)

本文详细介绍了如何在iOS应用中使用各种手势识别器,包括点击、长按、旋转、捏合、拖拽及轻扫等手势,并提供了具体的实现代码示例。

//1** UIImageView

    UIImage *image=[UIImageimageNamed:@"a944621500d792503e95f7077dec376b.jpg"];

   self.imageView=[[UIImageViewalloc] initWithImage:image];

   self.imageView.frame=CGRectMake(50,100, 200, 200);

    [self.viewaddSubview:self.imageView];

    [_imageView release];

    //把图片的用户交互打开,它默认是关闭的,此外还有一个控件是label

    self.imageView.userInteractionEnabled=YES;


//1.点击

    UITapGestureRecognizer *tap=[[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(tapAction:)];

//设置点击几次才会触发方法

    tap.numberOfTapsRequired=2;

//设置几根手指进行点击

    tap.numberOfTouchesRequired=2;

//将手势添加到对应的图片上

    [self.imageViewaddGestureRecognizer:tap];

    [taprelease];

#pragma mark 点击的方法

-(void)tapAction:(UITapGestureRecognizer *)tap

{

    NSLog(@"测试点击手势");

   self.imageView.image=[UIImageimageNamed:@"a5bcfced872ff6cf7661b9005ba57922.jpeg"];

}

//2.长按(常用)

    UILongPressGestureRecognizer *longPress=[[UILongPressGestureRecognizeralloc] initWithTarget:selfaction:@selector(longPressAction:)];

    //设置长按触发的最小时间

    longPress.minimumPressDuration=2;

    //允许用户手指在长按过程中允许移动的距离

    longPress.allowableMovement=200;

    //把手势添加到图片上

    [self.imageViewaddGestureRecognizer:longPress];

    [longPressrelease];

#pragma mark 长按对应的响应方法

-(void)longPressAction:(UILongPressGestureRecognizer *)longPress

{  //长按的状态

    //长按弹一个UIAlertView

   if (self.alertview ==nil) {

        self.alertview =[[UIAlertViewalloc] initWithTitle:@"hello world"message:@"*_*"delegate:selfcancelButtonTitle:@"YES"otherButtonTitles:@"NO",nil];

        [self.alertviewshow];

        [self.alertviewrelease];

}else{

        [self.alertviewshow];

    }

}



//3.旋转

    //创建一个旋转的手势

    UIRotationGestureRecognizer *rotation=[[UIRotationGestureRecognizeralloc] initWithTarget:selfaction:@selector(rotationAction:)];

    //把手势放到对应的图片上

    [self.imageViewaddGestureRecognizer:rotation];

   //释放

    [rotationrelease];

#pragma mark 旋转对应的响应方法

-(void)rotationAction:(UIRotationGestureRecognizer *)rotation

{

    //可以通过手势获取手势添加的视图是哪一个

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

    //进行旋转的操作

    //通过视图的transform属性,让视图进行旋转

  //imageView.transform=CGAffineTransformMakeRotation(rotation.rotation);

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

    rotation.rotation=0;

  }


//4.捏合

   //创建

    UIPinchGestureRecognizer *pinch=[[UIPinchGestureRecognizeralloc] initWithTarget:selfaction:@selector(pinchAction:)];

    //添加到图片上

    [self.imageViewaddGestureRecognizer:pinch];

   //释放

    [pinchrelease];

#pragma mark捏合对应的响应方法(缩放图片)

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

    //通过手势找视图

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

    //通过transform改变图片的尺寸

    //第一个参数是原来图片的大小,第二和第三个参数是相对于x,y轴的缩放比例

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

    //为了防止手势的变化让图片直接消失

    pinch.scale=1;

}



 //5.拖拽

   //创建

    UIPanGestureRecognizer *pan=[[UIPanGestureRecognizeralloc] initWithTarget:selfaction:@selector(panAction:)];

    [self.imageViewaddGestureRecognizer:pan];

    [panrelease];

#pragma mark拖拽对应的响应方法(通过拖拽手势,让视图随着手势的移动而yid)

-(void)panAction:(UIPanGestureRecognizer *)pan

{

    //通过手势找视图

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

    //通过手势获得经过的点

   CGPoint p=[pan translationInView:imageView];

    //设置移动的位置

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

    //为了防止手势在操作的时候视图消失

    [pansetTranslation:CGPointZeroinView:imageView];

}




//6.轻扫

    UISwipeGestureRecognizer *swipe=[[UISwipeGestureRecognizeralloc] initWithTarget:selfaction:@selector(swipeAction:)];

    [self.imageViewaddGestureRecognizer:swipe];

    [swiperelease];

    //轻扫的方向,向右

    swipe.direction =UISwipeGestureRecognizerDirectionRight;

#pragma mark 轻扫的对应方法

-(void)swipeAction:(UISwipeGestureRecognizer *)swipe

{

    if (swipe.direction ==UISwipeGestureRecognizerDirectionRight) {

       NSLog(@"向右");

    }

   }



【CNN-GRU-Attention】基于卷积神经网络和门控循环单元网络结合注意力机制的多变量回归预测研究(Matlab代码实现)内容概要:本文介绍了基于卷积神经网络(CNN)、门控循环单元网络(GRU)与注意力机制(Attention)相结合的多变量回归预测模型研究,重点利用Matlab实现该深度学习模型的构建与仿真。该模型通过CNN提取输入数据的局部特征,利用GRU捕捉时间序列的长期依赖关系,并引入注意力机制增强关键时间步的权重,从而提升多变量时间序列回归预测的精度与鲁棒性。文中涵盖了模型架构设计、训练流程、参数调优及实际案例验证,适用于复杂非线性系统的预测任务。; 适合人群:具备一定机器学习与深度学习基础,熟悉Matlab编程环境,从事科研或工程应用的研究生、科研人员及算法工程师,尤其适合关注时间序列预测、能源预测、智能优化等方向的技术人员。; 使用场景及目标:①应用于风电功率预测、负荷预测、交通流量预测等多变量时间序列回归任务;②帮助读者掌握CNN-GRU-Attention混合模型的设计思路与Matlab实现方法;③为学术研究、毕业论文或项目开发提供可复现的代码参考和技术支持。; 阅读建议:建议读者结合Matlab代码逐模块理解模型实现细节,重点关注数据预处理、网络结构搭建与注意力机制的嵌入方式,并通过调整超参数和更换数据集进行实验验证,以深化对模型性能影响因素的理解。
下载前必看:https://pan.quark.cn/s/da7147b0e738 《商品采购管理系统详解》商品采购管理系统是一款依托数据库技术,为中小企业量身定制的高效且易于操作的应用软件。 该系统借助VC++编程语言完成开发,致力于改进采购流程,增强企业管理效能,尤其适合初学者开展学习与实践活动。 在此之后,我们将详细剖析该系统的各项核心功能及其实现机制。 1. **VC++ 开发环境**: VC++是微软公司推出的集成开发平台,支持C++编程,具备卓越的Windows应用程序开发性能。 在该系统中,VC++作为核心编程语言,负责实现用户界面、业务逻辑以及数据处理等关键功能。 2. **数据库基础**: 商品采购管理系统的核心在于数据库管理,常用的如SQL Server或MySQL等数据库系统。 数据库用于保存商品信息、供应商资料、采购订单等核心数据。 借助SQL(结构化查询语言)进行数据的增加、删除、修改和查询操作,确保信息的精确性和即时性。 3. **商品管理**: 系统内含商品信息管理模块,涵盖商品名称、规格、价格、库存等关键字段。 借助界面,用户能够便捷地录入、调整和查询商品信息,实现库存的动态调控。 4. **供应商管理**: 供应商信息在采购环节中占据重要地位,系统提供供应商注册、联系方式记录、信用评价等功能,助力企业构建稳固的供应链体系。 5. **采购订单管理**: 采购订单是采购流程的关键环节,系统支持订单的生成、审批、执行和追踪。 通过自动化处理,减少人为失误,提升工作效率。 6. **报表与分析**: 系统具备数据分析能力,能够生成采购报表、库存报表等,帮助企业掌握采购成本、库存周转率等关键数据,为决策提供支持。 7. **用户界面设计**: 依托VC++的MF...
【DC-AC】使用了H桥MOSFET进行开关,电感器作为滤波器,R和C作为负载目标是产生150V的双极输出和4安培(双极)的电流(Simulink仿真实现)内容概要:本文档围绕一个基于Simulink的电力电子系统仿真项目展开,重点介绍了一种采用H桥MOSFET进行开关操作的DC-AC逆变电路设计,结合电感器作为滤波元件,R和C构成负载,旨在实现150V双极性输出电压和4A双极性电流的仿真目标。文中详细描述了系统结构、关键器件选型及控制策略,展示了通过Simulink平台完成建模与仿真的全过程,并强调了参数调整与波形分析的重要性,以确保输出符合设计要求。此外,文档还提及该仿真模型在电力变换、新能源并网等领域的应用潜力。; 适合人群:具备电力电子基础知识和Simulink仿真经验的高校学生、科研人员及从事电力系统、新能源技术等相关领域的工程技术人员;熟悉电路拓扑与基本控制理论的初级至中级研究人员。; 使用场景及目标:①用于教学演示H桥逆变器的工作原理与滤波设计;②支撑科研项目中对双极性电源系统的性能验证;③为实际工程中DC-AC转换器的设计与优化提供仿真依据和技术参考;④帮助理解MOSFET开关行为、LC滤波机制及负载响应特性。; 阅读建议:建议读者结合Simulink模型文件同步操作,重点关注H桥驱动信号生成、电感电容参数选取及输出波形的傅里叶分析,建议在仿真过程中逐步调试开关频率与占空比,观察其对输出电压电流的影响,以深化对逆变系统动态特性的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值