Category需要注意的地方

最近在项目中遇到一个特别奇怪的问题,经过一上午加一中午的排查,终于定位了问题。这个过程很曲折,有必要记录一下。

问题描述:在6s以及6sp上,无论是自己添加的button还是navigationBarItem,经常出现点击无效的问题,但是在其他机型以及6s/6sp的模拟器上都没有这个问题。

转机一:我在测试的时候发现,我在触碰到按钮时候,过大概0.1s,按钮选中状态下的灰色背景就消失了,但是在5s上只要不松手,灰色背景就不会消失。

猜测:难道和压力屏的设置有关,因为6s才有的压力屏,之前确实没有注意过这方面的开发设置。

结果:谷歌一上午,没有查到任何类似的问题。

转机二:在6s模拟器上测试的时候,我反复点击按钮触发点击事件,每次都成功。然后我试了试按住按钮不动,按钮依然是灰色,然后我挪动了一下鼠标,bug出现了,灰色背景消失了。

猜测:手势的滑动屏蔽掉了点击事件。

实验:这个屏蔽很奇怪,于是我打开了以前的项目,发现并没有出现同样的问题,及时按住按钮后移动鼠标也能触发点击事件。这个时候发现项目中有一个UIButton+NMCategory的文件,这个是其他同学使用的,让按钮可以随手势移动,然后所有的UIButton全部都添加函数,只要一移动,立马失焦。这段坑爹的代码如下:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    self.highlighted = NO;
}

结果:原来是用第三方的问题,改了之后就可以了。

总结:
1)6s屏幕的手势识别比5s灵敏好多;
2)慎用第三方Category,用之前必须得过一遍代码,不然神坑;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,295评论 4 61
  • 主要参考文章: BurpSuite插件开发指南之 API 上篇 BurpSuite插件开发指南之 API 下篇 B...
    yddchsc君阅读 8,582评论 0 5
  • 深夜是灵魂肆意释放的空间 黑暗把所有悲伤笼罩和掩盖 脆弱却总是在不经意间出现 奔放的细胞也开始兴奋跳动 蠢蠢欲动那...
    那个曾经的女孩阅读 318评论 0 2
  • 匆匆,太匆匆。 曾梦想仗剑走天涯,看一看世界的繁华 自从2015年6月份毕业后,当时没有感觉、没有概念,阴差阳错的...
    这样也挺好啦阅读 295评论 7 8
  • 我恋家,我妈恋女儿。 她给我备了各种口味的瓜子。 也是,总有一款我喜欢。 但是,我全部都很欢喜… 现在是2016年...
    小小月二号阅读 288评论 0 1