IOS 在添加了UITapGestureRecognizer的UIView上响应按钮的点击事件

原文出处http://blog.sina.com.cn/s/blog_59fb90df0101apn4.html点此查看原文

如图,下面的食友是嵌套在cell里面的,给tableview加了点击事件,跳转到查看详情界面,现在我需要点击下面的更多按钮,跳转到查看更多好友界面,而点击红圈内的空白处不响应,即不跳转到查看详情界面。

因为是在一个cell里面,所以我用一个uiview把热门食友装起来,加了UITapGestureRecognizer,然后在方法里不做操作,实现了上面点击红圈内的空白处不会跳转到查看界面,相当于用UITapGestureRecognizer事件覆盖了tableview的点击事件,可是,当我满心期待的运行时,没错,点击空白不会跳转,但是当我点击更多的时候,uibutton的点击事件不响应了,经过一轮百度搜索,在一篇博客找到解决方法,博客地址在上面,有兴趣的朋友可以看看,博客摘要:

在view上加了UITapGestureRecognizer之后,这个view上的所有触摸事件都被UITapGestureRecognizer给吸收了,所以要解决这个bug,要给这个手势代理加一些事件过滤,对button事件就不要拦截独吞了。代码如下:

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(cilck)];
tapGesture.delegate = self;
[friendView addGestureRecognizer:tapGesture];

#pragma mark UIGestureRecognizerDelegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{

    if ([touch.view isKindOfClass:[UIButton class]]) {
        //放过button点击拦截
        return NO;
    }else{
        return YES;
    }

}

感谢原作者的分享,用以上代码成功实现了我想要的效果,button事件也成功响应。

      在此记录,以备后查阅.

时间: 2024-10-01 06:02:00

IOS 在添加了UITapGestureRecognizer的UIView上响应按钮的点击事件的相关文章

UIView添加手势 然后UITableView 添加进这个View 导致UITableView 的单元格点击事件无效

#import "ViewController.h" @interface ViewController ()<UITableViewDataSource,UITableViewDelegate,UIGestureRecognizerDelegate> @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UIView * v = [[UIView alloc] init

iOS开发之 修改TabBar上的按钮的点击颜色

设置被选中的图片 self.tabBarController.tabBar.selectedItem.selectedImage = [UIImage imageNamed:@"main.png"]; 设置被选中颜色 self.tabBarController.tabBar.tintColor = [UIColor redColor];

IOS8 下修改TabBar上的按钮的点击颜色

HomePageViewController *first = [[HomePageViewControlleralloc] init]; first.tabBarItem = [[UITabBarItemalloc] initWithTitle:@"首页"image:aImage selectedImage:nil]; UINavigationController *nav1= [[UINavigationController alloc]initWithRootViewContro

获取本地文件(文件夹)上传,无点击事件

//url,realPath必填参数 1 public String updatebendi()throws Exception{ 2 ServletContext servletContext = ServletActionContext.getServletContext(); 3 //获取项目根目录路径 4 //String realPath= servletContext.getRealPath("/")+"image/yyy/yuangong"; 5 St

IOS UILabel用UITapGestureRecognizer实现点击事件

点击UILabel跳转页面: //定义UILabel @property (weak, nonatomic) IBOutlet UILabel *nameLabel; 用UITapGestureRecognizer手势触碰实现UILabel的点击事件 UITapGestureRecognizer *tapName = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(touchHeaderImageView:

iOS自定义backBarButtonItem的点击事件

最近遇到一个关于导航栏返回按钮的问题,因为之前项目里面都是用的系统默认的返回按钮样式所以没有想过要去更改,后来有需要将返回按钮箭头旁边的文字去掉,同时将该返回按钮的点击事件重新定义.一开始尝试自定义按钮然后设置为leftBarButtonItem,但是这样图片可能跟系统自带的不一样,还有就是返回按钮的位置跟系统自带的不一样.后来找了一些资料,发现将文字去掉比较简单,一般做法是控制器中添加如下代码,然后他的下一级控制就有一个只有箭头没有文字返回按钮: UIBarButtonItem *backBt

iOS开发随笔 31:UIButton无法响应点击事件

问题描述 因为项目需要,需要UITableView上添加固定的筛选表头,一直固定,不能随UITableView滚动.所以直接将表头与UITableView分离,将它添加到控制器的UIView上,即添加到UITableView的父视图上,与UITableView同级.然后表头上添加三个UIButton,效果达到预期,但问题随即出现.筛选表头上的UIButton无法响应点击事件,刚开始以为造成的原因是手误把UIButton的父视图或者UIButton属性userInteractionEnabled被

iOS高级开发——CollectionView的cell中按钮的点击实现

在我刚初学iOS的时候,我就问一些大神,iOS开发中最难的哪些部分.有些人就说是自定义控件.UI和交互设计.那个时候我将信将疑,随着自己开发的深入,自己的确是深有体会.开发一款App产品,很大一部分时间是在和UI打交道.因为开发中很多功能是直接封装好的或者有现成模板可以用的,唯有UI是根据不同的App千变万化的.所以今天我们继续来研究iOS中比较高级的控件--UICollectionView,来实现cell中按钮的点击操作.该demo我已经提交到: https://github.com/chen

IOS开发之功能模块--给任意的UIView添加点击事件

前言:好久没写博客,今天来一波.我在实际项目开发中,会遇到这样功能需求:我已经搭好了iOS的UI界面,但是很多界面的子View用了UIView,然后这些UIView中用了UILabel和UIImageView,然后接着需求要这些View能够有点击事件,比如一点击就跳转到某个控制器.一开始懵逼了,难道我还要把他们全部改成UIButton,但是UIButton不好添加子View,难道我还要全部自定义一下UIButton,就算自定义好了,在项目已经打好的界面还是要一个个替换,多麻烦.所以就想到通过UI