首先,在屏幕上贴一张图片
_imageView = [[UIImageViewalloc] initWithFrame:CGRectMake(110,150,100,140)];
_imageView.image = [UIImageimageNamed:@"10_0.jpg"];
_imageView.userInteractionEnabled =YES;
[self.viewaddSubview:_imageView];
轻触手势
UITapGestureRecognizer* tap = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(tap:)];
//点击次数
tap.numberOfTapsRequired =2;
tap.numberOfTouchesRequired =2;
[_imageViewaddGestureRecognizer:tap];
//轻触
- (void)tap:(UITapGestureRecognizer*)tap{
NSLog(@"轻触");
}
长按手势
UILongPressGestureRecognizer* longPress = [[UILongPressGestureRecognizeralloc]initWithTarget:selfaction:@selector(longPress:)];
[_imageViewaddGestureRecognizer:longPress];
//长按
- (void)longPress:(UILongPressGestureRecognizer*)longPress{
if (longPress.state ==UIGestureRecognizerStateEnded) {
NSLog(@"长按结束");
}
}
移动手势
UIPanGestureRecognizer* pan = [[UIPanGestureRecognizeralloc]initWithTarget:selfaction:@selector(pan:)];
[_imageViewaddGestureRecognizer:pan];
//移动
- (void)pan:(UIPanGestureRecognizer*)pan{
CGPoint point = [pan translationInView:self.view];
NSLog(@"%@",NSStringFromCGPoint(point));
_imageView.center =CGPointMake(_imageView.center.x + point.x,_imageView.center.y + point.y);
//偏移量设置为0
[pan setTranslation:CGPointZeroinView:self.view];
/*
x: 0 1 1 1
y: 0 1 0 0
0,0 1,1 3,2 6,3 这是每一次移动的偏移量,多加了,所以每次都要置0
*/
}
旋转手势
UIRotationGestureRecognizer* rotation = [[UIRotationGestureRecognizeralloc]initWithTarget:selfaction:@selector(rotation:)];
[_imageViewaddGestureRecognizer:rotation];
//旋转
- (void)rotation:(UIRotationGestureRecognizer*)rotation{
_imageView.transform =CGAffineTransformRotate(_imageView.transform, rotation.rotation);
[rotation setRotation:0];
}
捏合手势
UIPinchGestureRecognizer* pinch = [[UIPinchGestureRecognizeralloc]initWithTarget:selfaction:@selector(pinch:)];
[_imageViewaddGestureRecognizer:pinch];
// 捏合
- (void)pinch:(UIPinchGestureRecognizer*)pinch{
_imageView.bounds =CGRectMake(0,0, _imageView.bounds.size.width * pinch.scale, _imageView.bounds.size.height * pinch.scale);
[pinchsetScale:1];//这里要置1
}
滑动手势
UISwipeGestureRecognizer* swipe = [[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(swipe:)];
//右边方向
swipe.direction =UISwipeGestureRecognizerDirectionLeft;
[_imageViewaddGestureRecognizer:swipe];
UISwipeGestureRecognizer* swipe2 = [[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(swipe:)];
swipe2.direction =UISwipeGestureRecognizerDirectionRight;
[_imageViewaddGestureRecognizer:swipe2];
UISwipeGestureRecognizer* swipe3 = [[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(swipe:)];
swipe2.direction =UISwipeGestureRecognizerDirectionUp;
[_imageViewaddGestureRecognizer:swipe3];
UISwipeGestureRecognizer* swipe4 = [[UISwipeGestureRecognizeralloc]initWithTarget:selfaction:@selector(swipe:)];
swipe2.direction =UISwipeGestureRecognizerDirectionDown;
[_imageViewaddGestureRecognizer:swipe4];
- (void)swipe:(UISwipeGestureRecognizer*)swipe{
if (swipe.direction ==UISwipeGestureRecognizerDirectionLeft) {
NSLog(@"向左边滑");
}
if (swipe.direction ==UISwipeGestureRecognizerDirectionRight) {
NSLog(@"向右边滑");
}
if (swipe.direction ==UISwipeGestureRecognizerDirectionUp) {
NSLog(@"向上边滑");
}
if (swipe.direction ==UISwipeGestureRecognizerDirectionDown) {
NSLog(@“向下边滑");
}
}
还有四个代理方法
//当触摸开始的时候,触发这个方法
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"touchesBegan");
}
//当开始移动的时候,触发这个方法
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch* touch = [touches anyObject];
CGPoint point = [touch locationInView:self.view];
NSLog(@"%f, %f", point.x, point.y);
//1,1 2,1 1,0
}
//当手指离开屏幕的时候,触发这个方法
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"touchesEnded");
}
//当有别的进程打断当前进程的时候,触发这个方法
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"touchesCancelled");
}