iOS -- 基本的手势
2016-06-15 15:24
399 查看
#import "WZViewController.h"
@interface
WZViewController ()<UIGestureRecognizerDelegate>
@property (weak,
nonatomic) IBOutlet
UIView *gestureView;
@end
@implementation WZViewController
- (void)viewDidLoad
{
[super
viewDidLoad];
[self
text];
}
//-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
//{
// [super touchesBegan:touches withEvent:event];
//}
-(void)text
{
[self
swipe];//轻扫
[self
longpress];//长按
[self
rotate];//旋转
[self
pinch];//捏合
[self
pan];//拖拽
[self
tap];//敲击
}
//轻扫
-(void)swipe
{
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer
alloc]initWithTarget:self
action:@selector(swipeClick)];
swipeGesture.delegate =
self;
swipeGesture.direction =
UISwipeGestureRecognizerDirectionLeft;
[self.gestureView
addGestureRecognizer:swipeGesture];
}
-(void)swipeClick
{
NSLog(@"轻扫view");
}
//长按
-(void)longpress
{
UILongPressGestureRecognizer *pressGesture = [[UILongPressGestureRecognizer
alloc]initWithTarget:self
action:@selector(pressClick:)];
// 至少长按2秒
pressGesture.minimumPressDuration =
2;
// 在触发手势之前,50px范围内长按有效
pressGesture.allowableMovement =
50;
pressGesture.delegate =
self;
[self.gestureView
addGestureRecognizer:pressGesture];
}
-(void)pressClick:(UILongPressGestureRecognizer*)pressGesture
{
NSLog(@"长按view");
}
//捏合手势
-(void)pinch
{
UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer
alloc]initWithTarget:self
action:@selector(pinchClick:)];
pinchGesture.delegate =
self;
[self.gestureView
addGestureRecognizer:pinchGesture];
}
-(void)pinchClick:(UIPinchGestureRecognizer*)pinchGesture
{
pinchGesture.view.transform =
CGAffineTransformScale(pinchGesture.view.transform, pinchGesture.scale, pinchGesture.scale);
pinchGesture.scale =
1;
}
//旋转
-(void)rotate
{
UIRotationGestureRecognizer *rotateGesture = [[UIRotationGestureRecognizer
alloc]initWithTarget:self
action:@selector(rotateClick:)];
rotateGesture.delegate =
self;
[self.gestureView
addGestureRecognizer:rotateGesture];
}
-(void)rotateClick:(UIRotationGestureRecognizer *)rotateGesture
{
rotateGesture.view.transform =
CGAffineTransformRotate(rotateGesture.view.transform, rotateGesture.rotation);
rotateGesture.rotation =
0;
}
//拖拽
-(void)pan
{
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer
alloc]initWithTarget:self
action:@selector(panClick:)];
panGesture.delegate =
self;
[self.gestureView
addGestureRecognizer:panGesture];
}
-(void)panClick:(UIPanGestureRecognizer*)panGesture
{
//在view上移动的距离
CGPoint point = [panGesture
translationInView:panGesture.view];
panGesture.view.transform =
CGAffineTransformTranslate(panGesture.view.transform, point.x, point.y);
// CGPoint center = panGesture.view.center;
// center.x += point.x;
// center.y += point.y;
// panGesture.view.center = center;
[panGesture setTranslation:CGPointZero
inView:panGesture.view];
}
//敲击
-(void)tap
{
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(tapClick:)];
tapGesture.delegate =
self;
// tapGesture.numberOfTapsRequired = 2;
// tapGesture.numberOfTouchesRequired = 2;
[self.gestureView
addGestureRecognizer:tapGesture];
}
-(void)tapClick:(UITapGestureRecognizer *)tapGesture
{
NSLog(@"我被敲击了");
}
#pragma mark - 代理方法
/**
*
当点击view的时候,会先调用这个方法
*/
//- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
//{
// CGPoint pos = [touch locationInView:touch.view];
// if (pos.x <= touch.view.frame.size.width * 0.5) {
// return YES;
// }
// return NO;
//}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer
*)otherGestureRecognizer
{
return
YES;
}
@end
@interface
WZViewController ()<UIGestureRecognizerDelegate>
@property (weak,
nonatomic) IBOutlet
UIView *gestureView;
@end
@implementation WZViewController
- (void)viewDidLoad
{
[super
viewDidLoad];
[self
text];
}
//-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
//{
// [super touchesBegan:touches withEvent:event];
//}
-(void)text
{
[self
swipe];//轻扫
[self
longpress];//长按
[self
rotate];//旋转
[self
pinch];//捏合
[self
pan];//拖拽
[self
tap];//敲击
}
//轻扫
-(void)swipe
{
UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer
alloc]initWithTarget:self
action:@selector(swipeClick)];
swipeGesture.delegate =
self;
swipeGesture.direction =
UISwipeGestureRecognizerDirectionLeft;
[self.gestureView
addGestureRecognizer:swipeGesture];
}
-(void)swipeClick
{
NSLog(@"轻扫view");
}
//长按
-(void)longpress
{
UILongPressGestureRecognizer *pressGesture = [[UILongPressGestureRecognizer
alloc]initWithTarget:self
action:@selector(pressClick:)];
// 至少长按2秒
pressGesture.minimumPressDuration =
2;
// 在触发手势之前,50px范围内长按有效
pressGesture.allowableMovement =
50;
pressGesture.delegate =
self;
[self.gestureView
addGestureRecognizer:pressGesture];
}
-(void)pressClick:(UILongPressGestureRecognizer*)pressGesture
{
NSLog(@"长按view");
}
//捏合手势
-(void)pinch
{
UIPinchGestureRecognizer *pinchGesture = [[UIPinchGestureRecognizer
alloc]initWithTarget:self
action:@selector(pinchClick:)];
pinchGesture.delegate =
self;
[self.gestureView
addGestureRecognizer:pinchGesture];
}
-(void)pinchClick:(UIPinchGestureRecognizer*)pinchGesture
{
pinchGesture.view.transform =
CGAffineTransformScale(pinchGesture.view.transform, pinchGesture.scale, pinchGesture.scale);
pinchGesture.scale =
1;
}
//旋转
-(void)rotate
{
UIRotationGestureRecognizer *rotateGesture = [[UIRotationGestureRecognizer
alloc]initWithTarget:self
action:@selector(rotateClick:)];
rotateGesture.delegate =
self;
[self.gestureView
addGestureRecognizer:rotateGesture];
}
-(void)rotateClick:(UIRotationGestureRecognizer *)rotateGesture
{
rotateGesture.view.transform =
CGAffineTransformRotate(rotateGesture.view.transform, rotateGesture.rotation);
rotateGesture.rotation =
0;
}
//拖拽
-(void)pan
{
UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer
alloc]initWithTarget:self
action:@selector(panClick:)];
panGesture.delegate =
self;
[self.gestureView
addGestureRecognizer:panGesture];
}
-(void)panClick:(UIPanGestureRecognizer*)panGesture
{
//在view上移动的距离
CGPoint point = [panGesture
translationInView:panGesture.view];
panGesture.view.transform =
CGAffineTransformTranslate(panGesture.view.transform, point.x, point.y);
// CGPoint center = panGesture.view.center;
// center.x += point.x;
// center.y += point.y;
// panGesture.view.center = center;
[panGesture setTranslation:CGPointZero
inView:panGesture.view];
}
//敲击
-(void)tap
{
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer
alloc]initWithTarget:self
action:@selector(tapClick:)];
tapGesture.delegate =
self;
// tapGesture.numberOfTapsRequired = 2;
// tapGesture.numberOfTouchesRequired = 2;
[self.gestureView
addGestureRecognizer:tapGesture];
}
-(void)tapClick:(UITapGestureRecognizer *)tapGesture
{
NSLog(@"我被敲击了");
}
#pragma mark - 代理方法
/**
*
当点击view的时候,会先调用这个方法
*/
//- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
//{
// CGPoint pos = [touch locationInView:touch.view];
// if (pos.x <= touch.view.frame.size.width * 0.5) {
// return YES;
// }
// return NO;
//}
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer
*)otherGestureRecognizer
{
return
YES;
}
@end
相关文章推荐
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- 基于Android中手势交互的实现方法
- Android程序开发之给背景图加上移动的手势
- 实例详解用户输入 i. 检测常用手势
- Android基础开发之手势识别
- Android应用开发中触摸屏手势识别的实现方法解析
- Android实现手势控制ImageView图片大小
- 基于JS实现Android,iOS一个手势动画效果
- 使用Swift代码实现iOS手势解锁、指纹解锁实例详解
- IOS手势操作(拖动、捏合、旋转、点按、长按、轻扫、自定义)
- iOS开发中的几个手势操作实例分享
- Android手势操作示例(上/下/左/右的判断)
- Android手势密码的实现
- iOS开发之触摸事件以及手势
- HTML5单页面手势滑屏切换原理
- iOS 使用手势UIGestureRecognizer对图像进行缩放、移动、旋转等操作
- iOS缩放手势
- iOS的事件
- iOS- UIImageView/手势识别
- 基于一次手势训练的kinect 3D 动态手势识别(提纲)