UIPanGestureRecognier的简单使用
来源:互联网 发布:淘宝卖家换支付宝 编辑:程序博客网 时间:2024/05/16 09:46
首先照例先创建一个imageView
UIImageView *imageView = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"Pikachu"]];
imageView.frame = CGRectMake(100, 100, 300, 300);
imageView.userInteractionEnabled=YES;
_imageView = imageView;
[self.view addSubview:imageView];
在创建手势 创建手势的方法是调用父类的UIGestureRecognizer的方法 并让这个imgaeView添加一个手势UIPanGestureRecognizer *pan = [[UIPanGestureRecognizeralloc]initWithTarget:selfaction:@selector(pan:)];
[self.imageViewaddGestureRecognizer:pan];
可以识别手指的最大数量 设置为3的时候你一根,两个,三个手指都可以触发这个手势的方法
但是4只 就不行了
pan.maximumNumberOfTouches =3;
设置为2的时候最少需要两个手指才能触发这个手势的方法
当设置的值大于maximumNumberOfTouches这个手势的方法将不会被触发
默认是1
pan.minimumNumberOfTouches =1;
当触发这个手势的时候调用这个方法
-(void)pan:(UIPanGestureRecognizer *)pan{
你手指触摸到那个view的时候那个点作为原点 坐标是(0,0)
如果你想让你的view跟着手指的移动而移动那个view这个参数应该是pan.view的superView
CGPoint point1 =[pan translationInView:self.view];
我们打印这个点 你会发现 这个point1是相对于你第一次触摸到view得时候的那个点而言的
NSLog(@"point1 %@",NSStringFromCGPoint(point1));
用这个point2 可以知道在整个坐标轴上是按着那个方向那个速度滑动的
x代表x轴 y代表y轴 正负代表方向 数值代表大小多少点每秒的速度移动
CGPoint point2 = [pan velocityInView:self.view];
NSLog(@"point2 %@",NSStringFromCGPoint(point2));
这个states也是父类的属性
switch (pan.state) {
caseUIGestureRecognizerStateBegan:
break;
caseUIGestureRecognizerStateChanged:{
pan.view.center =CGPointMake(pan.view.center.x+point1.x, pan.view.center.y+point1.y);
这个方法是让拖拽的view跟着手指的滑动而滑动 这个view必须是pan.view.superview
[pan setTranslation:CGPointZeroinView:self.view];
}
break;
caseUIGestureRecognizerStateEnded:{
}
break;
default:
break;
}
- UIPanGestureRecognier的简单使用
- 简单易懂的使用
- ant的简单使用
- Log4j的简单使用
- TCPDUMP的简单使用
- IComparer的简单使用
- TreeView的简单使用
- CListCtrl的简单使用
- Rose的简单使用
- OpenSSL的简单使用
- CInternetSession的简单使用
- 标签的简单使用
- 触发器的简单使用
- nekohtml的简单使用
- FileUpload的简单使用
- JFreeChart的简单使用
- JMX的简单使用
- Vi的简单使用
- 移动H5前端性能优化指南
- EPOLL 事件之 EPOLLRDHUP
- Oracle的取整函数
- windos下配置 sublime text+quick3.5 开发环境
- mysql在centos6.5上安装配置
- UIPanGestureRecognier的简单使用
- 如何查看SQL Server的版本、补丁包信息?以及如何鉴别是否需要升级自己的SQL Server?
- Android全局获取Context上下文实例
- Google云存储的开放Maven镜像中央仓库(转载)
- SDK中常用的工具
- iOS下解决libzbar.a不支持armv7s的方法
- Codechef November Challenge 2015 Simple Sum
- 《Effective C++》读书笔记III
- ubuntu 右键添加terminal