最近项目里面出现了一个很奇怪的问题,我的项目的主框架是一个tabbarContorller,里面包含了三个ViewController,第一个ViewController的导航栏是隐藏的,其他两个是显示的;然后我点击tabbar切换界面的时候,回到第一个界面,在第一个界面底部会出现一块不能点击的区域(宽度和屏幕宽度一样,高度大概也是tabbar的高度)导致这个区域里面的点击事件都不能响应;
01.png如01.png所示,切换回来的界面,红框内的点击事件都不会响应,导致播放按钮点击不了;
百度了很久还是没有找到对应的解决方法,后来我在tabbarContorller的touchesBegan方法里面,检测到我点击的区域到底是什么东西了:
UITransitionView和UIViewControllerWrapperView,这两个类都是不对外开放的类,所以需要用NSClassFromString方法去获取:
02.png解决的办法也是如图(02.png)所示,将点击到的view的高度改为0;
但是此方法不是最佳的方法,因为还是需要点击相应的区域1-2次之后,才能使界面的响应事件恢复正常;
mark一下,希望以后能找到更好的方法解决这个问题;
网友评论