手势
来源:互联网 发布:js包含字符串 编辑:程序博客网 时间:2024/03/29 07:21
//手势
//轻拍手势
//轻拍手势UITap
//创建轻拍手势对象
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapAction:)];
//设置手指头个数
//tap.numberOfTouchesRequired = 2;
//给手指头设置轻拍属性
tap.numberOfTapsRequired = 2;
//把轻拍手势添加到redView
[self.rootView.redView addGestureRecognizer:tap];
//长按手势UILong
UILongPressGestureRecognizer *longPress =[[UILongPressGestureRecognizer alloc] initWithTarget:selfaction:@selector(longPressAction:)];
//给长按设置一个长按时间
longPress.minimumPressDuration = 3;
[self.rootView.redView addGestureRecognizer:longPress];
[longPressrelease];
//轻扫手势UISwipe
//清扫手势默认是从左往右
UISwipeGestureRecognizer *swip = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipAction:)];
[self.rootView.redView addGestureRecognizer:swip];
//设置清扫手势的方向
swip.direction = UISwipeGestureRecognizerDirectionLeft;
//平移手势UIPan
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panAction:)];
[self.rootView.redView addGestureRecognizer:pan];
[panrelease];
//捏合手势UIPinch
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc]initWithTarget:self action:@selector(pinchAction:)];
[self.rootView.redView addGestureRecognizer:pinch];
[pinchrelease];
//旋转手势UIRotation
UIRotationGestureRecognizer *rotation =[[UIRotationGestureRecognizer alloc] initWithTarget:selfaction:@selector(rotationAction:)];
[self.rootView.redView addGestureRecognizer:rotation];
[rotationrelease];
}
#pragma mark - 轻拍手势UITap
- (void)tapAction:(UIGestureRecognizer *)sender
{
self.rootView.redView.backgroundColor = [UIColorcreatRandomColor];
}
#pragma mark - 长按手势UILong
- (void)longPressAction:(UIGestureRecognizer *)sender
{
//判断长按手势,触发开始的时候执行
if(sender.state == UIGestureRecognizerStateBegan) {
self.rootView.redView.backgroundColor = [UIColorcreatRandomColor];
}
}
#pragma mark - 清扫手势UISwip
- (void)swipAction:(UIGestureRecognizer *)sender
{
self.rootView.redView.backgroundColor = [UIColorcreatRandomColor];
}
#pragma mark - 平移手势UIPan
- (void)panAction:(UIGestureRecognizer *)sender
{
//实现redview跟着平移手势一块动
//获取平移手势的平移量
CGPointpoint = [((UIPanGestureRecognizer*)sender)translationInView:sender.view];
//让redView根据该平移量平移
//self.rootView.redView.transform =CGAffineTransformtranslation(point.x , point.y);
self.rootView.redView.transform =CGAffineTransformTranslate(sender.view.transform, point.x,point.y); //self.rootView.redView.frame = CGRectMake(point.x, point.y, 100,100);
[sendersetTranslation:CGPointZero inView:sender.view];
}
#pragma mark - 捏合手势UIPinch
- (void)pinchAction:(UIPinchGestureRecognizer *)sender
{
//让redView按照手势放大缩小
//self.rootView.redView.transform =CGAffineTransformMakeScale(sender.scale, sender.scale);
self.rootView.redView.transform =CGAffineTransformScale(sender.view.transform, sender.scale,sender.scale);