iOS手势开发的那点儿事
生活随笔
收集整理的這篇文章主要介紹了
iOS手势开发的那点儿事
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
閑了下來,自己寫寫demo,把iOS有的幾種手勢(shì)大致整理了下:
- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.mImageView = [[UIImageView alloc] initWithFrame:CGRectMake(50, 199, 200, 200)];[mImageView setImage:[UIImage imageNamed:@"wade.jpg"]];mImageView.userInteractionEnabled = YES;//默認(rèn)是關(guān)閉的[self.view addSubview:mImageView];//1.拖動(dòng)手勢(shì)UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePan:)];[mImageView addGestureRecognizer:pan];//2.長按手勢(shì)UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];[mImageView addGestureRecognizer:longPress];//3.輕拍手勢(shì) //numberOfTapsRequired 拍的次數(shù)//numberOfTouchesRequired 幾個(gè)手指頭在拍UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapClick:)];singleTap.numberOfTapsRequired = 1; //[mImageView addGestureRecognizer:singleTap];UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapClick:)];doubleTap.numberOfTapsRequired = 2;singleTap.numberOfTouchesRequired = 3;doubleTap.numberOfTouchesRequired = 3;//雙擊手勢(shì)檢測(cè)失敗才會(huì)觸發(fā)單擊手勢(shì)相應(yīng)的操作,不加這句,當(dāng)用戶響應(yīng)的是雙擊手勢(shì)的時(shí)候,會(huì)觸發(fā)單擊手勢(shì)然后會(huì)觸發(fā)雙擊手勢(shì)(其實(shí)是不要單擊手勢(shì)的)[singleTap requireGestureRecognizerToFail:doubleTap];[mImageView addGestureRecognizer:doubleTap];//4.放大縮小手勢(shì)UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinch:)];[mImageView addGestureRecognizer:pinch];//5.旋轉(zhuǎn)手勢(shì)UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotation:)];[mImageView addGestureRecognizer:rotation];//6.滑動(dòng)手勢(shì)UISwipeGestureRecognizer *swip = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swip:)];[mImageView addGestureRecognizer:swip];//7.UIScreenEdgePanGestureRecognizer *edge = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(edge:)];[mImageView addGestureRecognizer:edge];
}- (void)handlePan:(UIPanGestureRecognizer *)panGest {CGPoint translation = [panGest translationInView:self.view];panGest.view.center = CGPointMake(panGest.view.center.x + translation.x, panGest.view.center.y + translation.y);[panGest setTranslation:CGPointZero inView:self.view];
}- (void)longPress:(UILongPressGestureRecognizer *)recognizer {UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, mImageView.frame.size.width, 50)];label.backgroundColor = [UIColor redColor];[mImageView addSubview:label];
}- (void)tapClick:(UITapGestureRecognizer *)recognizer {if (recognizer.numberOfTapsRequired == 1) {UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, mImageView.frame.size.width, 50)];label.backgroundColor = [UIColor blueColor];[mImageView addSubview:label];}else if (recognizer.numberOfTapsRequired == 2) {UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, mImageView.frame.size.width, 100)];label.backgroundColor = [UIColor yellowColor];[mImageView addSubview:label];}}- (void)pinch:(UIPinchGestureRecognizer *)recognizer {recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);recognizer.scale = 1;//這個(gè)是必須要設(shè)置的
}- (void)rotation:(UIRotationGestureRecognizer *)recognizer {recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, recognizer.rotation);recognizer.rotation = 0;
}- (void)swip:(UISwipeGestureRecognizer *)recognizer {recognizer.numberOfTouchesRequired = 2;recognizer.direction = UISwipeGestureRecognizerDirectionRight;
}- (void)edge:(UIScreenEdgePanGestureRecognizer *)recognizer {recognizer.edges = UIRectEdgeRight;if (UIGestureRecognizerStateBegan == recognizer.state || UIGestureRecognizerStateChanged == recognizer.state) {CGPoint translation = [recognizer translationInView:recognizer.view];[UIView animateWithDuration:0.5 animations:^{mImageView.center = CGPointMake(self.view.center.x + translation.x, mImageView.center.y);}];}
}
總結(jié)
以上是生活随笔為你收集整理的iOS手势开发的那点儿事的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 周琦能和范志毅比高下?
- 下一篇: ARM指令集发展概述