为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");
	}
}

你可能感兴趣的:(UIView)