iOS 使用自定义手势屏蔽按钮解决方法/UITapGestureRecognizer屏蔽Button

有时候需要在scrollview上面添加手势,让其获取点击后,收起键盘,就用到添加手势。可是会出现一些后续问题,比如会拦截scrollview上面的其他一切可点击的控件,你可能会去设置手势控件的一些属性。但仅仅设置 UIGestureRecognizer 的属性是不够的,比如 :

screenTouch.numberOfTapsRequired =1;

[screenTouchsetCancelsTouchesInView:NO];

这种有时候会拦截UITextField上面的清空text的按钮。这时候就需要下面这种方法,从根本上处理好手势响应事件方法。

1、在.h

头文件中添加<UIGestureRecognizerDelegate>委托

2、在.m体文件中添加实现方法————

// 当一个事件判定为是一个手势时,先进入手势代理方法。该方法中判断点击的视图是不是button如果是button则返回NO,手势不响应该事件,既然没响应,也不会取消该事件的传递。则button会接收到该事件,并作处理。

#pragma mark - UIGestureRecognizerDelegate

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch

{

// 判断是不是UIButton的类

if ([touch.view isKindOfClass:[UIButton class]])

{

return NO;

}

else

{

return YES;

}

}

3、经过这么一次折腾,最大的感受就是,凡事都有解决的办法,不要轻易放弃,要多搜网络资源。

时间: 2024-11-08 19:01:09

iOS 使用自定义手势屏蔽按钮解决方法/UITapGestureRecognizer屏蔽Button的相关文章

【转】IOS 输入框被键盘遮盖的解决方法

做IOS开发时,难免会遇到输入框被键盘遮掩的问题.上网上搜索了很多相关的解决方案,看了很多,但是由衷的觉得太麻烦了. 有的解决方案是将视图上的所有的东西都添加到一个滚动视图对象( UIScrollView )中,然后滚动视图实现输入框不被软键盘覆盖,个人觉得此方案好是好,但是太过麻烦. 有的解决方案是通过一个通知 UIKeyboardDidShowNotification去实现的,需要用到事件监听,而且需要自己定义并实现“将要开始编辑”与“结束编辑”这两个监听事件中的方法.本人也觉得很麻烦. 参

iOS开发---- 开发错误汇总及解决方法

本文转载至 http://blog.csdn.net/shenjx1225/article/details/8561695 一.今天调试程序的时候,出现了一个崩溃,信息如下: 2013-02-01 09:05:23.929 SD4iPhone[627:c07] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid numb

ionic 项目引用 Background Mode 时,部署到ios设备时出现异常的解决方法

我们的ionic程序,有时候需要运行在后台,这个时候我们需要引用到cordova-plugin-background-mode,目前的版本0.7.2.  但是目前在IOS设备上调用这个版本的plugin是有问题的. 这个问题目前有以下2种解决方法. 1.  Visual Studio Code 打开ionic 项目, 打开终端, 运行命令: ionic cordova platform add ios ,  命令运行完成后, 用XCode打开位于 \platforms\ios\*.xcodepr

织梦添加超过两百个自定义字段后在使用addfields调用自定义字段出错的解决方法

dedecsm 自定义模型  添加自定义字段(个数一百多个),使用addfields  方法调用,出现调用不出来的情况[addfields  里面就能添加145个字段,多了直接乱码或者无法显示] 解决方法 分别打开 include/dedehtml2.class.php include/dedetag.class.php include/dedetemplate.class.php 搜索 1024 全部改成 10240 文件存储字节改大就可以了. 原文地址:https://www.cnblogs

iOS 获取自定义cell上按钮所对应cell的indexPath.row的方法

在UITableView或UICollectionView的自定义cell中创建一button,在点击该按钮时知道该按钮所在的cell在UITableView或UICollectionView中的行数.就是cell的 indexPath.row,下面以UITableView为例: 有两种方法: -(IBAction):(id)sender { 1. 第一种方法,这个方便一点点,不用设置tag. NSLog(@"MyRow:%d",[self.table indexPathForCell

第二十六篇、因为自定item(nav)而使系统右滑返回手势失效的解决方法

@interface ViewController () <uigesturerecognizerdelegate> @[email protected] ViewController - (void)viewDidLoad { [super viewDidLoad]; // 自定义返回按钮 UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 44, 44)]; [button setTitle:@"王

js识别安卓和ios及pc端,以及解决微信的屏蔽

这个功能其实主要针对下载功能来说的, 安卓下载地址肯定和ios下载地址不一样, 如何在不同设备访问下载地址时就能根据用户的设备进行相应的跳转. 同时,微信访问的地址如果是下载地址的话,微信本身是会屏蔽跳转的. 需要识别微信,并给出提示用其他浏览器打开此网址. 代码很简单.完整代码如下: 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 2 <html><head><

【一点经验分享】Yii2 - custom validator not work 自定义验证无效的解决方法

有个项目正在使用Yii2开发,因为是第一次使用2代Yii,也算是不停的摸索. 昨天就遇到一个问题,谷歌也帮不上忙,就是自己在model里写的自定义validator不生效. 原本以为只是自定义无效,终于在使用unique这个yii原生validator时发现,问题的答案就是使用ajax validation. 为什么自定义validator和原生unique都无效呢?因为这些代码是保存在服务器上的,不使用ajax怎样能获取验证结果呢? yii2中的controller也必须 use yii\we

iOS ARC注释和错误的解决方法在使用

1.一个错误The current deployment target does not support automated __weak references 这个错误被所述支持iOS版本号不支持相对低的weakkeyword,要替换   unsafe_unretained   问题得以克服. 版权声明:本文博主原创文章,博客,未经同意不得转载.