ui中各种手势的用法
来源:互联网 发布:ecdh算法 编辑:程序博客网 时间:2024/06/04 22:29
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColorwhiteColor];
UIImageView *image = [[UIImageViewalloc]initWithFrame:[UIScreenmainScreen].bounds];
image.backgroundColor = [UIColorblackColor];
image.image = [UIImageimageNamed:@"4444.jpg"];
image.contentMode =UIViewContentModeScaleAspectFit;
[self.viewaddSubview:image];
[imagerelease];
// 1. 点击(tap)
UITapGestureRecognizer *tap = [[UITapGestureRecognizeralloc] initWithTarget:selfaction:@selector(tapClick:)];
// 执行方法需要点击的次数
tap.numberOfTapsRequired =2;
// 执行方法需要的触点
tap.numberOfTouchesRequired =1;
[image addGestureRecognizer:tap];
image.userInteractionEnabled =YES;
[taprelease];
// 2.长按
UILongPressGestureRecognizer *l = [[UILongPressGestureRecognizeralloc]initWithTarget:selfaction:@selector(longp:)];
// 默认 0。5 --长按的时间
l.minimumPressDuration =3;
//长按可以移动的距离
l.allowableMovement =100;
[image addGestureRecognizer:l];
[lrelease];
// 3.旋转
UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizeralloc] initWithTarget:selfaction:@selector(rotation:)];
//
rotation.rotation =111;
//
[imageaddGestureRecognizer:rotation];
[rotationrelease];
// 4.捏合
UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizeralloc]initWithTarget:selfaction:@selector(pinch:)];
[image addGestureRecognizer:pinch];
[pinchrelease];
// 5.平移
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizeralloc]initWithTarget:selfaction:@selector(pan:)];
//
[image addGestureRecognizer:pan];
[panrelease];
// 6.轻扫手势
UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizeralloc] initWithTarget:selfaction:@selector(swipe:)];
[image addGestureRecognizer:swipe];
[swiperelease];
// 7.屏幕边缘手势
UIScreenEdgePanGestureRecognizer *screen = [[UIScreenEdgePanGestureRecognizeralloc]initWithTarget:selfaction:@selector(screen:)];
[imageaddGestureRecognizer:screen];
[screenrelease];
}
- (void)screen:(UIScreenEdgePanGestureRecognizer *)se {
NSLog(@"屏幕边缘");
}
- (void)swipe:(UISwipeGestureRecognizer *)s {
NSLog(@"轻扫");
}
- (void)pan:(UIPanGestureRecognizer *)p {
NSLog(@"平移");
// 获取视图
UIView *imageV = p.view;
CGPoint point = [p translationInView:imageV];
imageV.transform =CGAffineTransformTranslate(imageV.transform, point.x, point.y);
[p setTranslation:CGPointZeroinView:imageV];
}
- (void)pinch:(UIPinchGestureRecognizer *)p {
NSLog(@"捏合");
// 很重要的一个属性scale,会被捕获到缩放的倍数
// 参数一:原来的transform
// 参数二:水平方向缩放的倍数
// 参数三:垂直方向缩放的倍数
// CGAffineTansform 仿射变换矩阵(矩阵中放置view的缩放倍数,旋转角度,x,y坐标等参数)
// 获取手势所在的view
UIView *imageV = p.view;
// 将x,y方向的缩放倍数传给transform
p.view.transform =CGAffineTransformScale(p.view.transform, p.scale, p.scale);
// 会被多次调用这个方法,所以每次都要重置缩放倍数为原始倍数
p.scale =1.0f;
}
- (void)rotation:(UIRotationGestureRecognizer *)r {
NSLog(@"旋转");
// 改变矩阵的角度参数
r.view.transform =CGAffineTransformRotate(r.view.transform, r.rotation);
// 重置角度,因为在这个方法在旋转时会时时被调用
r.rotation =0.0f;
}
- (void)longp:(UILongPressGestureRecognizer *)l {
NSLog(@"长按");
}
- (void)tapClick:(UITapGestureRecognizer *)tap {
NSLog(@"点击手势");
}
// 设置同时可以有两个手势同时识别
// 基本上是同时识别两个,默认为NO
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
return YES;
}
- ui中各种手势的用法
- UI: UIGestureRecognizer IOS中手势的用法
- UISwipeGestureRecognizer各种手势的用法
- iOS 各种手势用法
- UI中提供的七种手势
- ios中上下左右滑动的各种手势
- IOS UI初级-触摸与手势的基本概念和用法
- Android高级UI GestureDetector监听各种手势
- IOS 开发中手势的基本用法
- IOS UI中常见的几种手势
- 手势的基本用法
- iOS 手势的用法
- UIGestureRecognizer 各种手势的判断
- IOS各种手势的使用
- UIGestureRecognizer 六种手势的用法 - iOS - UI基础知识总结6
- 【iOS开发-手势】iOS中各种手势总结
- iOS中解决各种手势冲突问题
- android的各种UI
- com.alibaba.fastjson.JSONObject.getString耗时问题
- 源代码解析Servlet生命周期 转自segmentfault
- HDU 4337 暴力
- CodeForces 253D Table with Letters - 2
- 1059. Prime Factors
- ui中各种手势的用法
- Unity3D技术之分析器 (Profiler) 窗口详解
- Multipart/form-data POST文件上传详解
- java对象转型
- c#——标准Dispose模式的实现
- 负载均衡学习笔记
- VARCHAR2(N CHAR)与VARCHAR2(N)的区别[Oracle基础]
- DMA及cache一致性的学习心得
- Java 如何将String转化为Int