ios开发——手势识别器(swipe)

柳志专
2023-12-01


#import "ViewController.h"

@interface ViewController ()
@property(strong, nonatomic) UILabel *label;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //初始化界面
    CGRect screen = [[UIScreen mainScreen] bounds];
    CGFloat labelWidth = 300;
    CGFloat labelHeight = 30;
    CGFloat labelTopView = 150;
    CGRect frame = CGRectMake((screen.size.width - labelWidth) / 2, labelTopView, labelWidth, labelHeight);
    self.label = [[UILabel alloc] initWithFrame:frame];
    self.label.text = @"Swipe(滑动)手势识别";
    //字体左右居中
    self.label.textAlignment = NSTextAlignmentCenter;
    [self.view addSubview:self.label];
    
    //创建4个Swipe手势识别器
    NSInteger directions[4] = {UISwipeGestureRecognizerDirectionRight,
        UISwipeGestureRecognizerDirectionLeft,
        UISwipeGestureRecognizerDirectionUp,
        UISwipeGestureRecognizerDirectionDown};
    for (int i = 0; i < 4; i++) {
        UISwipeGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc]
                                                initWithTarget:self
                                                action:@selector(foundSwipe:)];
        //设置识别滑动方向
        recognizer.direction = directions[i];
        //Swipe手势识别器关联到View
        [self.view addGestureRecognizer:recognizer];
    }
    
    //设置View开启用户事件
    self.view.userInteractionEnabled = YES;
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}

- (void)foundSwipe:(UISwipeGestureRecognizer *)sender {
    
    NSLog(@"direction = %li", sender.direction);
    
    switch (sender.direction) {
        case UISwipeGestureRecognizerDirectionDown:
            self.label.text = @"向下滑动";
            break;
        case UISwipeGestureRecognizerDirectionLeft:
            self.label.text = @"向左滑动";
            break;
        case UISwipeGestureRecognizerDirectionRight:
            self.label.text = @"向右滑动";
            break;
        case UISwipeGestureRecognizerDirectionUp:
            self.label.text = @"向上滑动";
            break;
        default:
            self.label.text = @"未知";
    }
}


@end

 

 类似资料: