为UIView添加下上左右滑动操作
为UIView添加上下左右滑动操作
方法一:
在viewDidLoad时为UIView添加操作
响应操作绑定的事件
方法二:
方法一:
在viewDidLoad时为UIView添加操作
UISwipeGestureRecognizer *recognizer; recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)]; [recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)]; [[self view] addGestureRecognizer:recognizer]; [recognizer release]; recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)]; [recognizer setDirection:(UISwipeGestureRecognizerDirectionLeft)]; [[self view] addGestureRecognizer:recognizer]; [recognizer release]; recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)]; [recognizer setDirection:(UISwipeGestureRecognizerDirectionUp)]; [[self view] addGestureRecognizer:recognizer]; [recognizer release]; recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)]; [recognizer setDirection:(UISwipeGestureRecognizerDirectionDown)]; [[self view] addGestureRecognizer:recognizer]; [recognizer release];
响应操作绑定的事件
- (void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer{ //UISwipeGestureRecognizerDirectionLeft UISwipeGestureRecognizerDirectionRight UISwipeGestureRecognizerDirectionUp UISwipeGestureRecognizerDirectionDown if (recognizer.direction==UISwipeGestureRecognizerDirectionLeft ) { NSLog(@"Left"); } }
方法二:
#define HORIZ_SWIPE_DRAG_MIN 12 #define VERT_SWIPE_DRAG_MAX 4 CGPoint startTouchPosition; NSString *dirString ; - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ UITouch *touch = touches.anyObject; startTouchPosition = [touch locationInView:self.view]; } - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = touches.anyObject; CGPoint currentTouchPosition = [touch locationInView:self.view]; if (fabsf(startTouchPosition.x - currentTouchPosition.x) >= HORIZ_SWIPE_DRAG_MIN && fabsf(startTouchPosition.y - currentTouchPosition.y) <= VERT_SWIPE_DRAG_MAX) { // Horizontal Swipe if (startTouchPosition.x < currentTouchPosition.x) { NSLog(@"from left"); dirString = @"left"; } else{ NSLog(@"from right"); dirString = @"right";} } else if (fabsf(startTouchPosition.y - currentTouchPosition.y) >= HORIZ_SWIPE_DRAG_MIN && fabsf(startTouchPosition.x - currentTouchPosition.x) <= VERT_SWIPE_DRAG_MAX) { // Vertical Swipe if (startTouchPosition.y < currentTouchPosition.y) { NSLog(@"from bottom"); dirString = @"bottom";} else { NSLog(@"from top"); dirString = @"top";} } else { //dirString = @""; } } - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{ if (dirString == @"right") { NSLog(@"event right"); }else if (dirString == @"left") { NSLog(@"event left"); } }