【发布时间】:2016-03-12 07:48:32
【问题描述】:
总结
在没有状态栏的视图控制器推送视图控制器后,我得到了错误的 UISearchBar 触摸区域。
说明
UINavigationController 中有两个视图控制器 A 和 B。一个隐藏状态栏,代码如下:
- (BOOL)prefersStatusBarHidden {
return YES;
}
B 在UINavigationController 标题视图中具有UISearchBar。在此视图中状态栏已启用:
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleDefault;
}
从 A 推 B 后似乎没有任何问题:
但是当我尝试按下测试按钮或状态栏时,触摸识别错误:
当我按下导航栏下的红色区域时,搜索栏和后退按钮变为活动状态。
视频:https://www.youtube.com/watch?v=Jw4kDOFBCIg
小示例项目:https://github.com/leo150/SearchBarTest
有什么想法吗?谢谢
【问题讨论】:
-
一定是苹果的bug。
-
您是否尝试添加一个透明的 UIVIEw 作为遮罩来干扰触摸?这是一个令人讨厌的黑客行为,但如果你认为这是一个 serios 错误,值得一试!!!
-
@Mr.T,感谢您的回复。是的,我尝试添加
insertSubview: transparentButton aboveSubview: searchBar,但没有成功。通过我的按钮点击搜索栏。
标签: ios objective-c uinavigationcontroller uisearchbar uistatusbar