iOS 初学-手势

一.学习手势,首先要先建立一个对象进行操作,我们以一个照片为例.首先创建一个imageView

1.声明一个属性:

@property (nonatomic, retain)UIImageView *imageView;

2.开始真正创建对象

self.imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"beautiful.jpg"]];

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

[self.view addSubview:self.imageView];

[_imageView release];

3.如果要创建视图,就要打开图片用户交互功能,默认情况下是NO

self.imageView.userInteractionEnabled = YES;

二,手势的几个常用方法

1.点击事件

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];//初始化方法,添加点击方法名为tapAction:

[self.imageView addGestureRecognizer:tap];//把手势加到指定的视图上

[tap release];

tap.numberOfTouchesRequired = 2;//设置几个手指点击才可响应

tap.numberOfTapsRequired = 2;//设置连续点击几下才可响应

//点击方法

- (void)tapAction:(UITapGestureRecognizer *)tap

{

NSLog(@"我被点击了");

}

2.长按事件

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longpressAction:)];//同样的添加事件,事件名为longpressAction:

[self.imageView addGestureRecognizer:longPress];//把手势添加到imageview上

[longPress release];

longPress.minimumPressDuration = 1;//设置长按触发时间

- (void)longpressAction:(UITapGestureRecognizer *)longpressAction

{

if (longpressAction.state == UIGestureRecognizerStateBegan) {

NSLog(@"长按开始");

}

}

3.旋转

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

[self.imageView addGestureRecognizer:rotation];

[rotation release];

以上创建方法同前两个方法.

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

//可以通过手势,知道手势添加到那个视图

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

//找到视图,并且让视图进行旋转

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

rotationAction.rotation = 0;

}

4.缩放功能

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

[self.imageView addGestureRecognizer:pinch];

[pinch release];

- (void)pinch:(UIPinchGestureRecognizer *)pinch

{

//通过手势,找到视图

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

//找到视图,让视图缩放或者放大

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

pinch.scale = 1;

}

5.拖拽手势

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

[self.imageView addGestureRecognizer:tuozhuai];

[tuozhuai release];

- (void)tuozhuai:(UIPanGestureRecognizer *)tuozhuai

{

//通过手势,找到视图

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

//通过手势,来获取移动的点

CGPoint p = [tuozhuai translationInView:imageView];

//    CGPoint p = [tuozhuai  trans:imageView];

//通过位置transform实现拖拽

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

[tuozhuai setTranslation:CGPointZero inView:imageView];

}

//6.清扫手势,此手势是看你的滑动方向

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

[self.view addGestureRecognizer:qingsao];

[qingsao release];

qingsao.direction = UISwipeGestureRecognizerDirectionLeft;//清扫的方向

- (void)qingsao:(UISwipeGestureRecognizer *)qingsao

{

if (qingsao.direction == UISwipeGestureRecognizerDirectionLeft) {

NSLog(@"向左进行清扫");

}

}

时间: 2025-01-04 03:11:27

iOS 初学-手势的相关文章

iOS中手势的delaysTouchesBegan属性用法(挖坑)

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/css/cuteeditor.css);iOS中手势的delaysTouchesBegan属性用法(挖坑),布布扣,bubuko.com

ios各种手势,很有意思

一.概述 iPhone中处理触摸屏的操作,在3.2之前是主要使用的是由UIResponder而来的如下4种方式: - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event  - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event  - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent

[IOS初学]ios 第一篇 storyboard 与viewcontroller的关系

学习了一下ios,把一个基本的概念搞清楚了,在android或者wp中,大家基本都是习惯与一个画面场景代表一个类,新建场景的时候自动新建了类,但在ios中使用了storyboard之后发现,在storyboard中新加入了一个新的viewcontroller之后,就不知道在哪里写代码来控制这个viewcontroller,因为默认初始化创建这个app的时候自动带了一个viewcontroller. 对于我来说这个一开始就没搞清楚,就像下面这个图,建立了一个新的viewcontroller直接在s

IOS开发——手势 & 传感器 & 物理引擎

这次思维导图比较杂,demo已经全部上传到github上,小编的github地址是:狂戳 先看下效果图: 手势画板: 物理引擎: 传感器: IOS开发--手势 & 传感器 & 物理引擎

IOS中手势UIGestureRecognizer

通常在对视图进行缩放移动等操作的时候我们可以用UIScrollView,因为它里边自带了这些功能,我们要做的就是告诉UIScrollView的几个相关参数就可以了 但是没有实现旋转的手势即UIRotationGestureRecognizer IOS中手势有很多: UIRotationGestureRecognizer旋转 UITapGestureRecognizer手指点击 UIPinchGestureRecognizer缩放 UISwipeGestureRecognizer手指快速扫过 UI

iOS之手势滑动返回功能-b

iOS中如果不自定义UINavigationBar,通过手势向右滑是可以实现返回的,这时左边的标题文字提示的是上一个ViewController的标题,如果需要把文字改为简约风格,例如弄过箭头返回啥的,那么你需要自定义UINavigationBar,但当你自定义navigationBar后,这个功能就会自动失效. 屏蔽右滑返回功能代码:   if ([self.navigationController respondsToSelector:@selector(interactivePopGest

ios的手势UIGestureRecognizer

一.概述 iPhone中处理触摸屏的操作,在3.2之前是主要使用的是由UIResponder而来的如下4种方式: - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)

ios的手势操作之UIGestureRecognizer

一.概述 iPhone中处理触摸屏的操作,在3.2之前是主要使用的是由UIResponder而来的如下4种方式: - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)

【转载】Unity3D研究院之IOS触摸屏手势控制镜头旋转与缩放

前几篇文章介绍了很多Unity3D引擎自身的一些问题, 今天我们在回到IOS设备上讨论一些触摸屏幕手势,本章的目标是通过触摸iPhone屏幕手势 实现模型左右的旋转,与模型的缩放. 大家想一想模型的旋转,实际上是镜头的旋转.模型的缩放实际上是镜头Z轴方向的坐标.那么实现本章的内容只需要控制镜头的位置方可实现. 我们创建一个简单的游戏平面, 然后平面中放一个箱子做为旋转缩放的参照物.如下图所示,选中摄像机,给摄像机添加一个脚本名称为Move. 脚本中有一个参数 Target,它的作用是设置摄像头旋