1.UIPanGestureRecognizer 判断向左向右:
https://stackoverflow.com/questions/5187502/how-can-i-capture-which-direction-is-being-panned-using-uipangesturerecognizer
- (void)handleGesture:(UIPanGestureRecognizer *)gestureRecognizer { //获取手势的加速度 CGPoint velocity = [gestureRecognizer velocityInView:yourView]; if(velocity.x > 0) { NSLog(@"gesture went right"); } else { NSLog(@"gesture went left"); } }
手势的几种状态:
UIGestureRecognizerStateBegan:移动开始
UIGestureRecognizerStateChanged:移动中
UIGestureRecognizerStateEnded:移动结束
2.新建单击手势:
声明:
@property (nonatomic, strong) UITapGestureRecognizer *tapGesture;方法:
#pragma mark - tap gesture method
-(UITapGestureRecognizer *)tapGesture{
if (!_tapGesture) {
_tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapAction:)];
//单击
[_tapGesture setNumberOfTapsRequired:1];
}
return _tapGesture;
}
//触发
- (void)handleTapAction:(UITapGestureRecognizer *)tapGesture{
[self resetShowType:PSDrawerManagerShowCenter];
//刷新UI,有时需要异步
dispatch_async(dispatch_get_main_queue(), ^{
[self callNotificationReceiver:@"show_center"];
});
}
-(void)addTapGesture{
if (!_tapGesture) {
//注意:这里要使用self.tapGesture而不是_tapGesture,要不会报错
[_cover_view addGestureRecognizer:self.tapGesture];
}
}
-(void)removeTapGesture{
if (_tapGesture) {
[self.centerViewController.view removeGestureRecognizer:_tapGesture];
}
}