拖動手勢在開發過程中用到頻率較高,比如在app里彈出廣告,我們可以將廣告view向上或向下劃出.話不多說,直接上代碼
- (void)viewDidLoad {
[super viewDidLoad];
_imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 200, 80, 80)];
_imageView.backgroundColor = [UIColor redColor];
[self.view addSubview:_imageView];
_imageView.userInteractionEnabled = YES;
UIPanGestureRecognizer *panGes = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)];
[_imageView addGestureRecognizer:panGes];
panGes.delegate = self;
}
- (void)move:(UIPanGestureRecognizer *)sender {
CGPoint pt = [sender translationInView:_imageView];
sender.view.center = CGPointMake(sender.view.center.x +pt.x , sender.view.center.y);
//每次移動完,將移動量置為0,否則下次移動會加上這次移動量
[sender setTranslation:CGPointMake(0, 0) inView:self.view];
if (sender.state == UIGestureRecognizerStateEnded) {
NSLog(@"pan.view == %f", sender.view.center.x);
}
}
- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer {
CGPoint translation = [gestureRecognizer translationInView:gestureRecognizer.view];
NSLog(@"translation == %f", translation.x);
// if (translation.x >= 0) {
// return NO;
// }
return YES;
}
具體操作還得具體分析,這里簡單記錄下做法。