资讯专栏INFORMATION COLUMN

【SDK fix】iOS 8下将UIButton放置于tabbar位置无法响应event

张金宝 / 2582人阅读

摘要:简单地说,在设置之后,放一个在原来的位置上,再在上添加一个,像这样为添加,当按住的左下角区域时,没有被触发。触发环境或以上,真机调试。这说明并没有被透明的所遮盖。参考下图应该存在一个,并且设置为。考虑当前场景,应该是滑动返回手势捣的鬼。

本blog除部分译文外,所有内容均为原创,如有雷同,算我抄你:-)

问题描述

问题来自于iOS UIButton 的 touchDown 事件这篇帖子。简单地说,在设置

objcdetailVC.hidesBottomBarWhenPushed = YES;

之后,放一个view在tabbar原来的位置上,再在view上添加一个button,像这样

为button添加touchDown action,当按住button的左下角区域时,action没有被触发。

触发环境

iOS 7或以上,真机调试。

分析过程

先查看HitTest的结果,button实例被正确地返回了。这说明button并没有被透明的view所遮盖。
接着,override button的touchesXXX方法。当按下button的左下角时,touchesBegan等4个方法完全没有被调用到。参考下图

应该存在一个gesture recognizer,并且delaysTouchesBegan设置为YES。

  

delaysTouchesBegan (default of NO)—Normally, the window sends touch objects in the Began and Moved phases to the view and the gesture recognizer. Setting delaysTouchesBegan to YES prevents the window from delivering touch objects in the Began phase to the view. This ensures that when a gesture recognizer recognizes its gesture, no part of the touch event was delivered to the attached view. Be cautious when setting this property because it can make your interface feel unresponsive.

考虑当前场景,应该是滑动返回手势捣的鬼。稍微验证一下

objc- (void)viewDidLoad
{
    //Other codes here
    NSLog(@"%d", self.navigationController.interactivePopGestureRecognizer.delaysTouchesBegan);
}

得到结果

那么答案就很明显了。

解决方案
objcself.navigationController.interactivePopGestureRecognizer.delaysTouchesBegan = NO;
Demo

Button touch down bug fix

参考资料

Placing a UIButton in the same space as UITabBar (When hidden)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/15647.html

相关文章

  • iOS事件机制整理

    摘要:事件机制整理目录相关概念事件冲突使用案例相关概念类负责处理事件传递,均继承自它。则需要扩大的响应范围,将事件传递到。此为花边的重写方法,执行自己想要的操作执行一段动画参考文章触摸事件全家桶点击事件和手势冲突深入浅出事件机制 iOS事件机制整理 目录 相关概念 事件冲突 使用案例 相关概念 UIResponder UIResponder类负责处理事件传递,UIView、UIVie...

    xingpingz 评论0 收藏0
  • [经验]iOS开发-记录下在开发过程中遇到的问题的解决方案及经验总结-2

    摘要:前言最近一直忙于项目,总结都直接顺手放在了笔记里,文章疏于打理迟迟没有更新,在这里跟各位说句对不起。真机测试出现找到项目中的文件,点击右键,打开包内容。打开这个文件后,按,在这个文件中查找找到和这个类似的都删除。 前言:最近一直忙于项目,总结都直接顺手放在了笔记里,文章疏于打理迟迟没有更新,在这里跟各位说句对不起。原本打算上一篇记录到400条的时候再新开一篇,但是更新的时候一直出现崩溃...

    chenjiang3 评论0 收藏0
  • 【低耦合集成TabBarController】最低只需传两个数组即可完成主流App框架搭建

    摘要:想支持这种样式,只需自定义一个加号按钮,能检测到它的存在并自动将排序好,无需多余操作,并且也预留了一定接口来满足自定义需求。该方法是为了调整自定义按钮中心点轴方向的位置,建议在按钮超出了的边界时实现该方法。 Github仓库地址戳这里 showImg(https://img.shields.io/badge/pod-v1.0.1-brightgreen.svg);showImg(htt...

    walterrwu 评论0 收藏0
  • 仿微博 iOS 客户端 TabBar 中间按钮

    摘要:原文链接仿微博客户端中间按钮项目源码模仿微博客户端项目源码我在模仿微博客户端。而微博客户端这个按钮点击后,应该是出现如下页面,而非进入页。 原文链接:仿微博 iOS 客户端 TabBar 中间按钮项目源码:模仿微博客户端项目源码 我在模仿微博 iOS 客户端。如图: showImg(http://7u2sl0.com1.z0.glb.clouddn.com/ios_Screen%20S...

    lidashuang 评论0 收藏0
  • 如何在自定义 Tool Bar 和 Tab Bar 之间切换显示

    摘要:本文我们要实现的是,在点击导航栏的按钮后,隐藏,显示自定义的工具栏菜单,再次点击按钮切换回来。但是仔细看它也有一个问题,它在点击选择按钮时,显示的工具栏是类型的,它的高度比要矮一点,这样在切换时感觉不协调除了这个问题,上的照片还有其他问题。 showImg(https://images.unsplash.com/photo-1494679431452-d4f4a03d0004?auto...

    MadPecker 评论0 收藏0

发表评论

0条评论

张金宝

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<