我有一个 UITableview
不占据整个屏幕 ( screenshot )。在 iOS 6 中一切正常。但在 iOS 7 中,当用户搜索时,搜索结果表会占据整个 View ( screenshot )。
为了解决这个问题,我尝试按照 this answer 中的描述手动设置框架.外观现在是正确的 ( screenshot ),但现在左上角的“<”按钮在显示搜索结果表时不会接收点击事件。
searchResultsTableView
似乎正在添加拦截触摸事件的全屏背景 View 。为了证明这一点,我将这段代码添加到 didShowSearchResultsTableView
:
controller.searchResultsTableView.superview.backgroundColor = [UIColor blueColor];`
这screenshot证实了我的假设。
如何解决这个问题,让“<”按钮接收点击事件?
我想避免修改 controller.searchResultsTableView.superview
,这样我的更改就不会在未来的 iOS 版本中失效。
iOS 7 中的哪些更改导致此行为开始发生?
最佳答案
我仍在寻找更好的解决方案,但目前我的解决方案是在 viewControllers viewDidLayoutSubviews
中告诉您的 View 移到前面。代码看起来像这样。
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
[self.view bringSubviewToFront:self.navigationBar];
}
关于ios - iOS 7中UISearchDisplayController的全屏背景拦截触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18924651/