iOS UIGestureRecognizer小结

来源:互联网 发布:平安淘宝信用卡 看电影 编辑:程序博客网 时间:2024/05/02 01:10
/** *  手势识别器 1 能够为系统提供的视图对象添加触摸事件的响应方法比如(uiview uilabel uiimageview等) 2 内部封装了手势识别的过程 只需要把重心放到手势识别之后对应的操作 */- (void)viewDidLoad{    [super viewDidLoad];    // Do any additional setup after loading the view.    self.view.backgroundColor = [UIColor greenColor];        UIView *view = [[UIView alloc]initWithFrame:[[UIScreen mainScreen] bounds]];    view.backgroundColor = [UIColor brownColor];    [self.view addSubview:view];    [view release];    UIButton *goBack = [UIButton buttonWithType:UIButtonTypeSystem];    goBack.frame = CGRectMake(20, 20, 60, 40);    [goBack setTitle:@"GO" forState:UIControlStateNormal];    [view addSubview:goBack];    [goBack addTarget:self action:@selector(gun:) forControlEvents:UIControlEventTouchUpInside];//    UIGestureRecognizer 是手势识别器的一个抽象的基类 只提供手势识别器的基本功能 使用具体子类(7大子类)//        //轻拍手势//    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTapGesture:)];////    设置轻拍的次数//    tap.numberOfTapsRequired = 1;////    设置轻拍时需要手指的个数//    tap.numberOfTouchesRequired = 2;////    给视图添加手势//    [view addGestureRecognizer:tap];//    [tap release];//    长按手势//    UILongPressGestureRecognizer *longpress = [[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(handleLongPressGesture:)];//    设置长按手势 触发的最短时间//    longpress.minimumPressDuration = 2;//    [view addGestureRecognizer:longpress];//    [longpress release];//    清扫手势//    UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeGesture:)];//    设置左右方向都存在只要枚举值里有左移或者右移运算符 表示 可以按位或 同时存在//    上下和左右在一个手势识别器中不能同时存在  (若想同时存在 则创建两个清扫手势对象)//    swipe.direction =    UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft;//    [view addGestureRecognizer:swipe];//    [swipe release];//    //    平移手势//    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(handlePanGesture:)];//    [view addGestureRecognizer:pan];//    [pan release];////    捏合手势//    UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(handlePinchGesture:)];//    [view addGestureRecognizer:pinch];//    [pinch release];    //    旋转手势//    UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(handleRotationGesture:)];//    [view addGestureRecognizer:rotation];//    [rotation release];        //屏幕边缘手势    UIScreenEdgePanGestureRecognizer *screenEdgePan = [[UIScreenEdgePanGestureRecognizer alloc]initWithTarget:self action:@selector(handleScreenEdgePanGesture:)];    screenEdgePan.edges = UIRectEdgeLeft;    [view addGestureRecognizer:screenEdgePan];    [screenEdgePan release];}-(void)gun:(UIButton *)butten{    butten.superview.frame = [[UIScreen mainScreen] bounds];}-(void)handleScreenEdgePanGesture:(UIScreenEdgePanGestureRecognizer *)screenEdgePan{    CGPoint point = [screenEdgePan translationInView:screenEdgePan.view];    screenEdgePan.view.transform = CGAffineTransformTranslate(screenEdgePan.view.transform, point.x, 0);    [screenEdgePan setTranslation:point inView:screenEdgePan.view];}-(void)handleRotationGesture:(UIRotationGestureRecognizer *)rotation{    rotation.view.transform = CGAffineTransformRotate(rotation.view.transform, rotation.rotation);    //旋转角度清零    rotation.rotation = 0.0;}-(void)handlePinchGesture:(UIPinchGestureRecognizer *)pinch{    pinch.view.transform = CGAffineTransformScale(pinch.view.transform, pinch.scale, pinch.scale);    //把比例置 1    pinch.scale = 1.0;}-(void)handlePanGesture:(UIPanGestureRecognizer *)pan{    CGPoint point = [pan translationInView:pan.view];    pan.view.transform = CGAffineTransformTranslate(pan.view.transform, point.x, point.y);    //将之前增量清零    [pan setTranslation:CGPointZero inView:pan.view];    }-(void)handleSwipeGesture:(UISwipeGestureRecognizer *)swipe{    swipe.view.backgroundColor = [UIColor randomColor];}-(void)handleTapGesture:(UITapGestureRecognizer *)tap{    tap.view.backgroundColor = [UIColor randomColor];}-(void)handleLongPressGesture:(UILongPressGestureRecognizer *)longPress{    //当识别到长按手势触发(也就是长按时间到达后)    if (UIGestureRecognizerStateBegan == longPress.state) {         longPress.view.backgroundColor = [UIColor randomColor];    }       }- (void)didReceiveMemoryWarning{    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}

0 0
原创粉丝点击