iOS滑动手势UIPanGestureRecognizer 注意事项

今天在做侧滑页面时,发现页面随着滑动手势而滑动,到临界点时,如果再滑动会出现抖动现象.找到解决办法是进入方法后先判断一次,再判断是在滑动范围内让页面滑动.遂将滑动手势(UIPanGestureRecognizer )注意事项总结了如下:

代码:

- (void)panAction:(UIPanGestureRecognizer *)pan{

_canLeft = YES;

_canRight = YES;

//点相对于上一个点的位置

CGPoint moviePoint = [pan translationInView:pan.view];

//点的速度(正负可判断滑动趋势)

CGPoint velocity = [pan velocityInView:pan.view];

//侧滑的范围

CGFloat instance = kScreenWidth - 100;

//禁止左划的情况(在最左边时)

if (pan.view.left <= 0 && moviePoint.x <= 0) {

_canLeft = NO;

}

//禁止右划得情况(在最右边时)

if (pan.view.left >= instance && moviePoint.x >= 0) {

_canRight = NO;

}

//页面可以滑动的条件

if (_canRight && _canLeft && pan.view.left >= 0 && pan.view.left <= instance){

//移动

pan.view.center =

CGPointMake(pan.view.center.x + moviePoint.x, pan.view.center.y);

}

//每次都需要复位

[pan setTranslation:CGPointZero inView:pan.view];

//松开手指时判断滑动趋势让其归位

if (pan.state == UIGestureRecognizerStateEnded) {

if (pan.view.left < 10) {

pan.view.left = 0;

}else if(pan.view.left > instance - 10){

pan.view.left = instance;

}

}

}

时间: 2024-10-10 00:04:47

iOS滑动手势UIPanGestureRecognizer 注意事项的相关文章

iOS之手势滑动返回功能-b

iOS中如果不自定义UINavigationBar,通过手势向右滑是可以实现返回的,这时左边的标题文字提示的是上一个ViewController的标题,如果需要把文字改为简约风格,例如弄过箭头返回啥的,那么你需要自定义UINavigationBar,但当你自定义navigationBar后,这个功能就会自动失效. 屏蔽右滑返回功能代码:   if ([self.navigationController respondsToSelector:@selector(interactivePopGest

iOS-响应上下左右滑动手势

iOS-响应上下左右滑动手势 分类: iPhone开发2012-03-17 14:42 25489人阅读 评论(8) 收藏 举报 iosup -(void)viewDidLoad{ UISwipeGestureRecognizer *recognizer; recognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeFrom:)]; [recognizer setDir

iOS开发-UISwipeGestureRecognizer滑动手势

滑动手势也算是iOS中交互中很重要的一部分,上下左右滑动,UISwipeGestureRecognizer可以很轻松的解决这个问题,没什么难度直接看代码吧: UISwipeGestureRecognizer *upSwipeGestureRecognizer=[[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeGestureRecognizer:)]; upSwipeGestureRecognize

iOS解决嵌套在ScrollView中的TableView滑动手势冲突问题

最近在迭代开发公司项目的时候遇到了一个问题,在可以左右切换标签视图的ScrollView中嵌套了两个TableView用于展示视图,感觉一切so easy的情况下,问题出现了,因为左右两个视图既可以实现标签切换,其中TableView还需要侧滑删除功能,那么问题来了,滑动手势懵逼了,这是要搞事情啊!他无法识别到底要做什么处理,因为滑动手势冲突了,下面简单介绍一下解决思路: 大致的项目需求如上图所示: 经过一番资料的查阅,解决办法就是继承自UIScrollView,重写UIScrollView类:

ios多手势事件

开发ios应用时我们经常用到多手势来处理事情,如给scrollView增加点击事件,scrollView不能响应view的touch事件,但有时候却要用到多手势事件,那么我们可以给这个scrollView增加自己的手指事件.给imageView增加点击.放大.旋转等都可以通过多手势来完成. 下面就介绍下各种的手势的使用方法,及注意事项. - (void)viewDidLoad { [super viewDidLoad]; //为了能响应多手势事件,imageView的userInteractio

ios各种手势,很有意思

一.概述 iPhone中处理触摸屏的操作,在3.2之前是主要使用的是由UIResponder而来的如下4种方式: - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event  - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event  - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent

iOS中手势的使用

在iOS中添加手势比较简单,可以归纳为以下几个步骤: 创建对应的手势对象: 设置手势识别属性[可选]: 附加手势到指定的对象: 编写手势操作方法: 为了帮助大家理解,下面以一个图片查看程序演示一下上面几种手势,在这个程序中我们完成以下功能: 如果点按图片会在导航栏显示图片名称: 如果长按图片会显示删除按钮,提示用户是否删除: 如果捏合会放大.缩小图片: 如果轻扫会切换到下一张或上一张图片: 如果旋转会旋转图片: 如果拖动会移动图片: 具体布局草图如下: 为了显示导航条,我们首先将主视图控制器KC

iOS 常用手势

UIGestureRecognizer 对iOS的各种手势进行了封装,完全满足了用户对手势的需求. 以下是对各种手势的详细应用和说明,希望能对大家有帮助.^_^ - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.view.backgroundColor = [UIColor groupTableViewBackgroundColor]; _image

解决ViewPage中嵌套有ListView或者滑动手势等造成滑动的冲突

public class ViewPagerCompat extends ViewPager { //mViewTouchMode表示ViewPager是否全权控制滑动事件,默认为false,即不控制 private boolean mViewTouchMode = false; public ViewPagerCompat(Context context, AttributeSet attrs) { super(context, attrs); } public void setViewTou