手势,旋转(rotationGesture)+长按(longPressGesture)

接下来讲一下旋转(UIRotationGestureRecognizer)和长按(UILongPressGestureRecognizer)

一,旋转(UIRotationGestureRecognizer)

- (void)addImageViewAndAddRotationGesture

{

// 获取图片路径

NSString *path =[[NSBundle mainBundle] pathForResource:@"image"ofType:@"jpg"];

// 获得图片视图

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:path]];

// 设置 frame,大小和坐标

[imageView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

// 用户交互开启,默认是关闭,在关闭状态下图片不能点击

[imageView setUserInteractionEnabled:YES];

// 新建旋转手势,初始化方法中设置 target和 action

UIRotationGestureRecognizer *rotationGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotationGestureAction:)];

// 给imageView添加手势

[imageView addGestureRecognizer:rotationGesture];

// release

[rotationGesture release];

// 添加图片

[self.view addSubview:imageView];

[imageView release];

}

两点触摸屏幕旋转时执行rotationGestureAction:

iOS模拟器上按住alt(option)键就可以两点触摸屏幕

- (void)rotationGestureAction:(UIRotationGestureRecognizer *)rotationGesture

{

// 获取当前手势下的视图(返回值是UIView,所以需要强制类型转换)

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

// 修改 imageView的 transform属性可以对图片进行线性变换(其实是矩阵变换,一个3 * 3的矩阵,有兴趣的可以看看)

// 用系统的函数来完成旋转,第一个参数是 imageView的 transform,第二个参数是旋转的弧度(角度的另一种表达方式)

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

// 每次旋转完事都得初始化一下 rotation,至于为什么,自己试试就知道效果了

rotationGesture.rotation = 0;

}

二,(UILongPressGestureRecognizer)

- (void)addImageViewAndAddLongPressGesture

{

// 获取图片路径

NSString *path =[[NSBundle mainBundle] pathForResource:@"image"ofType:@"jpg"];

// 获得图片视图

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:path]];

// 设置 frame,大小和坐标

[imageView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

// 用户交互开启,默认是关闭,在关闭状态下图片不能点击

[imageView setUserInteractionEnabled:YES];

// 新建长按手势,初始化方法中设置 target和 action

UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressGestureAction:)];

// 给imageView添加手势

[imageView addGestureRecognizer:longPressGesture];

// release

[longPressGesture release];

// 添加图片

[self.view addSubview:imageView];

[imageView release];

}

长按图片时执行longPressGestureAction:

- (void)longPressGestureAction:(UILongPressGestureRecognizer *)longPressGesture

{

// 获取当前手势下的视图(返回值是UIView,所以需要强制类型转换)

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

}

以上是我要说的旋转手势(rotationGesture)和长按手势(longPressGesture)

时间: 2024-10-16 12:38:04

手势,旋转(rotationGesture)+长按(longPressGesture)的相关文章

android手势事件 快速移动 长按触摸屏 按下触摸屏,并拖动

/* 用户按下触摸屏.快速移动后松开 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //参数解释: // e1:第1个ACTION_DOWN MotionEvent // e2:最后一个ACTION_MOVE MotionEvent // velocityX:X轴上的移动速度,像素/秒 // velocityY:Y轴上的移动速度,像素/秒 // 触发条件 : /

iOS开发UI篇—手势识别器(长按+轻扫)

iOS开发UI篇—手势识别器(长按+轻扫) 一.长按事件 1 // 2 // YYViewController.m 3 // 03-长按 4 // 5 // Created by apple on 14-6-19. 6 // Copyright (c) 2014年 itcase. All rights reserved. 7 // 8 9 #import "YYViewController.h" 10 11 @interface YYViewController () 12 @prop

手势 - 单击、长按、拖动等

@implementation ViewController UILabel *labelView; int startX; int startY; - (void)viewDidLoad { [super viewDidLoad]; startX = 100; startY = 100; labelView = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 100, 50)]; labelView.backgroundColor = [U

iOS 开发UI中轻拍,长按,旋转手势识别器方法

一.监听触摸事件的做法 如果想监听一个view上面的触摸事件,之前的做法通常是:先自定义一个view,然后再实现view的touches方法,在方法内部实现具体处理代码 通过touches方法监听view触摸事件,有很明显的几个缺点 (1)必须得自定义view (2)由于是在view内部的touches方法中监听触摸事件,因此默认情况下,无法让其他外界对象监听view的触摸事件(需要通过代理) (3)不容易区分用户的具体手势行为 iOS 3.2之后,苹果推出了手势识别功能(Gesture Rec

轻量级应用开发之(11)手势

一 iOS手势 iOS开发中手势识别有六种: 轻击手势(TapGestureRecognizer), 轻扫手势 (SwipeGestureRecognizer), 长按手势(LongPressGestureRecognizer), 拖动手势(PanGestureRecognizer), 捏合手势(PinchGestureRecognizer), 旋转手势(RotationGestureRecognizer), 1,轻击手势(TapGestureRecognizer) UITapGestureRe

我的iOS 学习 - 学习基本手势

iOS设计手势符合人的操作习惯,提供了良好的用户体验. UIGestureRecognizer 手势抽象类,实现类 : UITapGestureRecognizer  轻击 UILongPressGestureRecognizer  长按 UISwipeGestureRecognizer  轻扫 UIPanGestureRecognizer  拖动 UIPinchGestureRecognizer  捏合缩放 UIRotationGestureRecognizer  旋转 下面是示例,简单的创建

手势(转)

代码改变世界 Posts - 69, Articles - 0, Comments - 834 Cnblogs Dashboard Logout HOME CONTACT GALLERY RSS Kenshin Cui's BlogCODING 完美世界... iOS开发系列--触摸事件.手势识别.摇晃事件.耳机线控 2014-09-02 06:33 by KenshinCui, 9064 阅读, 19 评论, 收藏,  编辑 -- iOS事件全面解析 概览 iPhone的成功很大一部分得益于它

iOS中手势的使用

在iOS中添加手势比较简单,可以归纳为以下几个步骤: 创建对应的手势对象: 设置手势识别属性[可选]: 附加手势到指定的对象: 编写手势操作方法: 为了帮助大家理解,下面以一个图片查看程序演示一下上面几种手势,在这个程序中我们完成以下功能: 如果点按图片会在导航栏显示图片名称: 如果长按图片会显示删除按钮,提示用户是否删除: 如果捏合会放大.缩小图片: 如果轻扫会切换到下一张或上一张图片: 如果旋转会旋转图片: 如果拖动会移动图片: 具体布局草图如下: 为了显示导航条,我们首先将主视图控制器KC

IOS问题汇总:2015-2-10 手势用法

1.轻击手势(TapGestureRecognizer)的添加 初始化代码TapGestureRecongnizer的代码如下: 1 //新建tap手势 2 UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGesture:)]; 3 //设置点击次数和点击手指数 4 tapGesture.numberOfTapsRequired