UIScrollView中的UITableView接收不到点击事件

一个UIScrollView中有若干个UITextfield,为了能在空白处点击能隐藏键盘,加了UITapGestureRecognizer事件,结果导致同样在UIScrollView里的UITableView接收不到didSelectRowAtIndexPath调用消息。

问题原因应该是UITapGestureRecognizer吞掉了touch事件,导致didSelectRowAtIndexPath方法无法响应。

这篇文章里面说的将cancelsTouchesInView设置为NO没多大作用,最后是此文的方法解决了。

解决方法:重写UIGestureRecognizerDelegate中的
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch方法。

#pragma mark - UIGestureRecognizerDelegate  
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch  
{  
    // 输出点击的view的类名  
    NSLog(@"%@", NSStringFromClass([touch.view class]));  
      
    // 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件  
    if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {  
        return NO;  
    }  
    return  YES;  
}
时间: 2024-10-11 03:51:58

UIScrollView中的UITableView接收不到点击事件的相关文章

获取TextView中的url并设置点击事件

调用安卓默认的浏览器方法: Intent intent = new Intent(Intent.ACTION_VIEW); System.out.println("跳转到百度"); intent.setData(Uri.parse("http://www.baidu.com")); // intent.setPackage("com.mx.browser");     intent.setPackage("com.uc.browser&

jQuery中animate动画第二次点击事件没反应

jQuery中animate动画第二次点击事件没反应 用animate做点击翻页动画时发现第二次点击事件动画没反应,而第一次点击有动画效果,代码如下: 复制代码 代码如下: $(".page").stop().animate({top:“-300px”}, 800, 'easeInOutExpo'); 第二次点击事件动画没反应的原因:top是page元素顶部相与其父元素顶部的距离,第一次点击后,page元素顶部已经移动到距其父元素顶部 -300px的位置,第二次点击时的并不是page在

WPF中C#代码触发鼠标点击事件

1.如下代码; 1 <Button x:Name="btnTest" Click="btnTest_Click"> 2 <Button.Triggers> 3 <EventTrigger RoutedEvent="Button.Click"> 4 <BeginStoryboard> 5 <!--要执行的动画代码--> 6 </BeginStoryboard> 7 </E

Android EditText中插入图片并响应点击事件

EditText中插入图片基本就是两种方法: 1,通过Html.fromHtml(..)来实现 [mw_shl_code=java,true]eText.append(Html.fromHtml("<img src='" + R.drawable.ohoh + "'/>", imageGetter, null));[/mw_shl_code] 2,通过ImageSpan与SpannableString/SpannableStringBuilder. [m

iOS 为移动中的UIView(UIButton )添加点击事件

高高兴兴迎接新的产品新需求,满心欢喜的开始工作,结果研究了一下午才发现,是自己想的太简单了,是我太单纯呀. 需求是这样的类似下雪的效果,随机产生一些小雪花,然后每个雪花可以点击到下个页面. 接到需求之后我的首先想法就是用button实现不久可以了,多简单点事情,结果实践之后就知道自己多么的无知了,在移动中的button根本没有办法接收点击事件. 然后同事给出了一种解决办法,通过手势获取点击的位置,然后遍历页面上的控件,如果在这个范围内就点击成功.通过这个想法我尝试用frame来实现需求,然后发现

button不在父试图中,但是需要响应点击事件

当button不在父试图的范围内时,是无法响应点击事件的.项目中涉及了这个部分,之后写了个小demo(点击按钮,向上弹出两个button,并且都能响应点击事件),如下: 自定义view:CUMoreView ////  CUMoreView.h// #import <UIKit/UIKit.h> typedef void(^btnClickBlock)(UIButton *btn); @interface CUMoreView : UIView @property (nonatomic, co

gridview中单元格button的点击事件和onitemclick点击冲突及解决办法

如果是listview的onitemclick的点击事件与子button的点击事件冲突,很多人都知道通过对listview设置android:descendantFocusability="blocksDescendants",以及对button设置android:focus="false",来屏蔽button的焦点以及点击事件从而解决冲突.然而不幸的是,本人今天对类似的gridview设置此项属性,亲测并没有什么用. 解决办法是有的,例如把button改为text

winform自定义控件中其他遮挡控件点击事件

自定义控件在其他窗口调用时,里面的lable阻挡了控件的点击事件 解决方法 自定义控件中lable的 点击事件 private void Lable1_Click(object sender, EventArgs e) { base.OnClick(e);//触发控件点击事件 } 原文地址:https://www.cnblogs.com/shoumufan/p/10276311.html

自定义cell中的button不响应点击事件

用xib自定义了一个cell(xib中拖动的直接是UIView,UIView中添加了Button),在xcode6.4的时候运行没问题,但是在xcode7发现按钮不能点击了.在Xcode7运行的时候,响应的是cell的didSelectedRow方法.解决方法,把xib自定义的cell中用的UIView改为UITableViewCell,把UIButton添加到cell的contentView里边就没有问题了.如果自定义的cell东西太多,可以有一个简单的方法,是把cell的contentVie