几种手势操作的最基本实现
来源:互联网 发布:怎么在淘宝注册店铺 编辑:程序博客网 时间:2024/06/15 21:48
工作太忙,有点懒,直接上代码了。
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
/*
UITapGestureRecognizer Tap(点击)
UIPinchGestureRecognizer Pinch(捏合)
UIRotationGestureRecognizer Rotation(旋转)
UISwipeGestureRecognizer Swipe(滑动,快速移动,是用于监测滑动的方向的)
UIPanGestureRecognizer Pan (拖移,慢速移动,是用于监测偏移的量的)
UILongPressGestureRecognizer LongPress(长按)
*/
- (void)viewDidLoad
{
[superviewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIButton *btn = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];
[btnsetFrame:CGRectMake(50,50, 100, 100)];
[btn setBackgroundImage:[UIImageimageNamed:@"1.png"]forState:UIControlStateNormal];
// 拖移的 Recognizer
UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizeralloc]initWithTarget:self action:@selector(handlePan:)];
[btnaddGestureRecognizer:panGestureRecognizer];
UIView *tapView = [[UIViewalloc] initWithFrame:CGRectMake(10,50, 300, 300)];
[tapView setBackgroundColor:[UIColorredColor]];
// 单击的 Recognizer
UITapGestureRecognizer* singleRecognizer;
singleRecognizer = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(SingleTap:)];
//点击的次数
singleRecognizer.numberOfTapsRequired =1; // 单击
//点击的手指数
singleRecognizer.numberOfTouchesRequired =2;
//给view添加一个手势监测;
[tapViewaddGestureRecognizer:singleRecognizer];
// 双击的 Recognizer
UITapGestureRecognizer* doubleRecognizer;
doubleRecognizer = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(DoubleTap:)];
doubleRecognizer.numberOfTapsRequired =2; // 双击
//关键语句,给self.view添加一个手势监测;
[tapViewaddGestureRecognizer:doubleRecognizer];
//关键在这一行,双击手势确定监测失败才会触发单击手势的相应操作
[singleRecognizerrequireGestureRecognizerToFail:doubleRecognizer];
// 捏合的 Recognizer
UIPinchGestureRecognizer *pinchGestureRecognizer = [[UIPinchGestureRecognizeralloc] initWithTarget:selfaction:@selector(handlePinch:)];
[tapViewaddGestureRecognizer:pinchGestureRecognizer];
// 旋转的 Recognizer
UIRotationGestureRecognizer *rotateRecognizer = [[UIRotationGestureRecognizeralloc] initWithTarget:selfaction:@selector(handleRotate:)];
[tapViewaddGestureRecognizer:rotateRecognizer];
// 长按的 Recognizer
UILongPressGestureRecognizer *longPressRecognizer = [[UILongPressGestureRecognizeralloc] initWithTarget:selfaction:@selector(handleLongPress:)];
//设置长按时间间隔
[longPressRecognizersetMinimumPressDuration:1.0];
[tapViewaddGestureRecognizer:longPressRecognizer];
// 滑动的 Recognizer
UISwipeGestureRecognizer *swipeRecognizer = [[UISwipeGestureRecognizeralloc] initWithTarget:selfaction:@selector(handleSwipe:)];
//设置滑动方向
[swipeRecognizer setDirection:UISwipeGestureRecognizerDirectionDown];
[tapViewaddGestureRecognizer:swipeRecognizer];
[self.viewaddSubview:tapView];
[self.viewaddSubview:btn];
}
- (void)handlePan:(UIPanGestureRecognizer*) recognizer
{
NSLog(@"拖移,慢速移动");
CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center =CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointZeroinView:self.view];
}
-(void)SingleTap:(UITapGestureRecognizer*)recognizer
{
//处理单击操作
NSLog(@"单击");
}
-(void)DoubleTap:(UITapGestureRecognizer*)recognizer
{
//处理双击操作
NSLog(@"双击");
}
- (void) handlePinch:(UIPinchGestureRecognizer*) recognizer
{
NSLog(@"捏合, %f", recognizer.scale);
recognizer.view.transform =CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
recognizer.scale =1;
}
- (void) handleRotate:(UIRotationGestureRecognizer*) recognizer
{
NSLog(@"旋转, %f", recognizer.rotation);
recognizer.view.transform =CGAffineTransformRotate(recognizer.view.transform, recognizer.rotation);
recognizer.rotation =0;
}
-(void)handleLongPress:(UILongPressGestureRecognizer*)recognizer
{
//处理长按操作
NSLog(@"长按, %f", recognizer.minimumPressDuration);
}
-(void)handleSwipe:(UISwipeGestureRecognizer*)recognizer
{
//处理滑动操作
NSLog(@"滑动,快速移动");
CGPoint translation = [recognizer locationInView:self.view];
NSLog(@"Swipe - start location: %f,%f", translation.x, translation.y);
// recognizer.view.transform = CGAffineTransformMakeTranslation(translation.x, translation.y);
}
- 几种手势操作的最基本实现
- 手势UIGestureRecognizer 几种手势的使用实现
- 操作手势的实现
- java实现最基本的几种排序算法(冒泡,选择,插入)
- Kinect--实现手势识别的三种基本的方法
- 单链表的几种基本操作
- 串最基本的5个操作的C实现
- 栈的链式存储 c实现的几种基本操作
- 几种基本排序的java实现
- php实现的几种基本算法
- MongoDB最基本的操作
- linux的最基本操作
- windows最基本的操作
- mysql 最基本的操作
- map最基本的操作
- git 的最基本操作
- 最基本的vector操作
- [iOS]手势操作实现图片的缩放
- Eclipse使用Maven创建Web时错误:Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webap
- 在daoImpl.java导出
- 浅谈网络语音技术
- JQuery Layer应用示例
- 学习心得---策略模式
- 几种手势操作的最基本实现
- BloomFilter of Guava
- vs下设置动态库输出文件名
- 基于Gist特征的相似图像检索
- 解析下HibernateSessionFactory.java
- 企业站SEO排名维护及资源利用分析(三)
- 本人第一个android游戏《新连连看》上架
- PHP 对象和引用
- UIWebview 如何自适应高度