手势

来源:互联网 发布:语音去噪算法 编辑:程序博客网 时间:2024/05/01 20:43

手势

控制图片,对其进行放大,缩小,旋转等操作

代码块

-(void)viewDidLoad{
// 1.先创建一个图片,要对其进行操作
self.view.backgroundColor=[UIColor whiteColor];
self.imageView=[[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
self.imageView.image=[UIImage imageNamed:@”c4.jpg”];
[self.imageView release];
[self.view addSubview:self.imageView];

// 2.打开交互,只有打开交互才可以通过手势的方式进行交互
self.imageView.userInteractionEnabled=YES;

// 3.几种常用的手势
//(1).点击
UITapGestureRecognizer *tap=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapAction:)];
//把手势添加到视图上
[self.imageView addGestureRecognizer:tap];
//内存管理
[tap release];
//触发方法需要点几次,默认是1
tap.numberOfTapsRequired=2;//设置为2
//需要几根手指
tap.numberOfTouchesRequired=2;

//4.给视图添加一个毛玻璃效果
UIBlurEffect *effect=[UIBlurEffect effectWithStyle:UIBlurEffectStyleExtraLight];
UIVisualEffectView *view=[[UIVisualEffectView alloc] initWithEffect:effect];
view.frame=CGRectMake(0, 0, 300,400);
[self.imageView addSubview:view];
[view release];
view.alpha=0.5;

}

几种手势的使用方法相同, 旋转,捏合,拖拽需要写方法
(2).长按 UILongPressGestureRecognizer
(3).轻扫 UISwipeGestureRecognizer
(4).旋转 UIRotationGestureRecognizer
(5).捏合 UIPinchGestureRecognizer
(6)拖拽 UIPanGestureRecognizer
(7).屏幕边界手势 , 这个手势出现的最晚,7.0以后才出现
// UIScreenEdgePanGestureRecognizer
*拖拽实现方法
-(void)panAction:(UIPanGestureRecognizer *)pan{
//<1>根据手势找到经过的点
CGPoint p=[pan translationInView:self.imageView];
//<2>修改视图的transform self.imageView.transform=CGAffineTransformTranslate(self.imageView.transform, p.x, p.y);
//<3>指定视图手势,移动位置清零
[pan setTranslation:CGPointZero inView:self.imageView];
}

*捏合
-(void)pinchAction:(UIPinchGestureRecognizer *)pinch{
self.imageView.transform=CGAffineTransformTranslate(self.imageView.transform, pinch.scale, pinch.scale);
pinch.scale=1;
}

*旋转
-(void)rotationAction:(UIRotationGestureRecognizer *)rotation{
self.imageView.transform=CGAffineTransformRotate(self.imageView.transform, rotation.rotation);
rotation.rotation=0;
}

0 0