UIGestureRecognizer手势和scrollview冲突的简单解决

问题:想实现一个TableView里面的cell的拉动露出编辑按钮的功能,用的是UIGestureRecognizer实现的,但是和UITableView的UIScrollView冲突了,导致每次拉动tableView都会调用UIGestureRecognizer的方法。

解决方案:

- (BOOL)gestureRecognizerShouldBegin:(UIPanGestureRecognizer *)gestureRecognizer{

if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {

CGPoint vTranslationPoint = [gestureRecognizer translationInView:self.contentView];

return fabs(vTranslationPoint.x) > fabs(vTranslationPoint.y);//如果手势纵向移动位移比横向位移大则不响应

}

return YES;

}

  其实就是在每个cell里面添加了 gestureRecognizerShouldBegin的筛选条件, 代码中translationInView返回手势移动的位移矢量,另外一个方法velocityInView返回的是手势移动的速度矢量。其实也可以重写TableView中scrollView的相关方法,在有多个UIGestureRecognizer的时候应该采取这种方式。

时间: 2024-10-14 18:59:59

UIGestureRecognizer手势和scrollview冲突的简单解决的相关文章

ECSHOP中transport.js和jquery的冲突的简单解决办法

ECSHOP中transport.js和jquery的冲突的简单解决办法 一流资源网近日在ECSHOP网站加入了几个JS特效代码,在谷歌.火狐下正常,在各版本IE下都不常,左思不得其解. 最后才知道原来是"ECSHOP中transport.js和jquery的冲突" 因为通用头部文件中引用了 1 {insert_scripts files='transport.js,utils.js'} transport.js与jquery有冲突.原因不多讲.在网上找到一个最简单解决办法: 成功了,

UItableView 加手势冲突问题的解决

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { // 获取点击的view的类名 NSLog(@"%@", NSStringFromClass([touch.viewclass])); // 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件 if ([NSSt

IOS 手势事件的冲突

关于手操作需要强调几点: UIImageView默认是不支持交互的,也就是userInteractionEnabled=NO ,因此要接收触摸事件(手势识别),必须设置userInteractionEnabled=YES(在iOS中UILabel.UIImageView的userInteractionEnabled默认都是NO,UIButton.UITextField.UIScrollView.UITableView等默认都是YES). 轻扫手势虽然是连续手势但是它的操作事件只会在识别结束时调用

冲突--ListView与ScrollView冲突的4种解决方案

众所周知ListView与ScrollView都具有滚动能力,对于这样的View控件,当ScrollView与ListView相互嵌套会成为一种问题: 问题一:ScrollView与ListView嵌套导致ListView显示不全面 问题二:ScrollView不能正常滑动 解决方式一: ScrollView+LinearLayout+ListView可以换成ScrollView+LinearLayout+LinearLayout,对于开发中,ScrollView所能滚动的样式形式各异,另外的话

页面多个Jquery版本共存的冲突问题,解决方法!

示例如下: <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> var j = jQuery.noConflict(true); </script> <script type="text/javascript" src="jquery-1.

C# 防止同时调用=========使用读写锁三行代码简单解决多线程并发的问题

http://www.jb51.net/article/99718.htm 本文主要介绍了C#使用读写锁三行代码简单解决多线程并发写入文件时提示"文件正在由另一进程使用,因此该进程无法访问此文件"的问题.需要的朋友可以参考借鉴 在开发程序的过程中,难免少不了写入错误日志这个关键功能.实现这个功能,可以选择使用第三方日志插件,也可以选择使用数据库,还可以自己写个简单的方法把错误信息记录到日志文件. 选择最后一种方法实现的时候,若对文件操作与线程同步不熟悉,问题就有可能出现了,因为同一个文

ListView与ScrollView冲突的4种接近方案

众所周知ListView与ScrollView都具有滚动能力,对于这样的View控件,当ScrollView与ListView相互嵌套会成为一种问题: 问题一:ScrollView与ListView嵌套导致ListView显示不全面 问题二:ScrollView不能正常滑动 解决方式一: ScrollView+LinearLayout+ListView可以换成ScrollView+LinearLayout+LinearLayout,对于开发中,ScrollView所能滚动的样式形式各异,另外的话

Android开发:ScrollView嵌套GridView的解决办法

Android开发:ScrollView嵌套GridView的解决办法 前些日子在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全. 解决办法,自定义一个GridView控件 public class MyGridView extends GridView {      public MyGridView(Context context, AttributeSet attrs) {      

简单解决ListView和ScrollView冲突,复杂情况仅供参考

ScrollView嵌套ListView冲突问题的最优解决方案 (转) 记录学习之用 项目做多了之后,会发现其实 ScrollView嵌套ListVew或者GridView等很常用,但是你也会发现各种奇怪问题产生.根据个人经验现在列出常见问题以及代码最少最简单的解决方法. 问题一 : 嵌套在 ScrollView的 ListVew数据显示不全,我遇到的是最多只显示两条已有的数据. 解决办法:重写 ListVew或者 GridView,网上还有很多若干解决办法,但是都不好用或者很复杂. @Over