UIGesture手勢擴展,平移,滑動,長按
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIImageView * iView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"17_8.png"]]; iView.frame=CGRectMake(50, 50, 200, 300); iView.userInteractionEnabled=YES; //創建一個平移手勢 //p1:事件函數處理對象 //p2:事件函數 UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panAct:)]; //將手勢添加到圖像視圖中 [iView addGestureRecognizer:pan]; //將移動事件手勢從圖像視圖中取消 [iView removeGestureRecognizer:pan]; [self.view addSubview:iView]; //創建一個滑動手勢 UISwipeGestureRecognizer * swipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeAct:)]; //設定滑動手勢接收事件的類型 //UISwipeGestureRecognizerDirectionUp 上 //UISwipeGestureRecognizerDirectionDown 下 //UISwipeGestureRecognizerDirectionLeft 左 //UISwipeGestureRecognizerDirectionRight 右 swipe.direction =UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft; [iView addGestureRecognizer:swipe]; //創建長按手勢 UILongPressGestureRecognizer * longPress =[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPressAct:)]; [iView addGestureRecognizer:longPress]; //設置長按手勢的時間,默認是0.5秒的時間為長按手勢 longPress.minimumPressDuration=3; } //長按函數 -(void)longPressAct:(UILongPressGestureRecognizer*)longpress{ //手勢的狀態對象,到達規定時間,3秒鐘,觸發函數 if(longpress.state==UIGestureRecognizerStateBegan){ NSLog(@"狀態開始"); } //當手指離開屏幕時,結束狀態 else if(longpress.state==UIGestureRecognizerStateEnded){ NSLog(@"結束狀態"); } } //滑動函數 -(void)swipeAct:(UISwipeGestureRecognizer*)swipe{ NSLog(@"swipe滑動"); } //移動事件函數,只要手指坐標在屏幕上發生變化時,函數就會被調用 -(void)panAct:(UIPanGestureRecognizer*)pan{ //獲取移動的坐標,現對於視圖的坐標系 //參數:相對的視圖對象 // CGPoint pt = [pan translationInView:self.view]; // NSLog(@"pt.x=%.2f,pt.y=%.2f",pt.x,pt.y); //獲取移動時的相對速度 CGPoint pv = [pan velocityInView:self.view]; NSLog(@"pv.x=%.2f,pv.y=%.2f",pv.x,pv.y); } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end