手势】iOS中各种手势总结

iOS中支持的手势事件UITapGestureRecognizer(敲击) //创建UITapGestureRecognizer对象,并且初始化的时候就绑定事件 UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapView)]; //连击几次才触发事件 recognizer.numberOfTapsRequired = 2; //在对应的View上添加这个手势监听 [self.myView addGestureRecognizer:recognizer];UILongPressGestureRecognizer(长按)//创建UILongPressGestureRecognizer对象,并初始化的时候就绑定事件UILongPressGestureRecognizer *recognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(tapView)];recognizer.minimumPressDuration = 2;//2秒后触发事件[self.myView addGestureRecognizer:recognizer];UISwipeGestureRecognizer(轻扫) //创建UISwipeGestureRecognizer对象UISwipeGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(tapView)];//手势扫的方向recognizer.direction = UISwipeGestureRecognizerDirectionLeft;[self.myView addGestureRecognizer:recognizer];UIRotationGestureRecognizer(旋转)例子:旋转一个view- (void)Rotate{//创建对象UIRotationGestureRecognizer *recognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotateView:)];recognizer.delegate = self;//每一个View要想支持多个手势,,就要实现这个代理[self.iconView addGestureRecognizer:recognizer];}//执行这个方法时候,会默认把旋转对象传过去- (void)rotateView:(UIRotationGestureRecognizer *)recognizer{//recognizer.rotation等于旋转角度,加上前一个他的前一个角度,所以每次把前一个角度清0,这个值就等于旋转角度//每次要把当前的transform+旋转的角度recognizer, recognizer.rotation);//要把旋转的角度设为0recognizer.rotation = 0; }UIPinchGestureRecognizer(捏合)- (void)Pinch{//创建对象UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinchView:)];pinch.delegate = self;[self.iconView addGestureRecognizer:pinch];}- (void)pinchView:(UIPinchGestureRecognizer *)pinch{pinch, pinch.scale, pinch.scale);pinch.scale = 1; }UIPanGestureRecognizer(拖拽) – (void)viewDidLoad{[super viewDidLoad];UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panView:)];[self.purpleView addGestureRecognizer:pan];}- (void)panView:(UIPanGestureRecognizer *)pan{switch (pan.state) {case UIGestureRecognizerStateBegan: // 开始触发手势break;case UIGestureRecognizerStateEnded: // 手势结束break;default:break;}// 1.在view上面挪动的距离CGPoint translation = [pan translationInView:pan.view];CGPoint center = pan.view.center;center.x += translation.x;center.y += translation.y;pan.view.center = center;// 2.清空移动的距离[pan setTranslation:CGPointZero inView:pan.view];}多手势的支持

目标View要想支持多个手势的必须实现UIGestureRecognizerDelegate代理 然后实现下面的方法

/** * 是否允许多个手势识别器同时有效 * Simultaneously : 同时地 */- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{return YES;}

在向山靠近一点,才发现这座山,好象一位诗人遥望远方,

手势】iOS中各种手势总结

相关文章:

你感兴趣的文章:

标签云: