UISearchDisplayController全屏幕背景拦截iOS 7中的触摸事件

时间:2013-09-20 19:43:34

标签: ios uitableview ios7 uisearchdisplaycontroller

我的UITableview没有占据整个屏幕(screenshot)。在iOS 6中一切正常。但在iOS 7中,当用户搜索时,搜索结果表会占用整个视图(screenshot)。

要解决此问题,我尝试按照this answer中的说明手动设置框架。现在外观正确(screenshot),但现在“<”显示搜索结果表时,左上角的按钮不会收到点击事件。

似乎searchResultsTableView正在添加一个拦截触摸事件的全屏背景视图。为了证明这一点,我将此代码添加到didShowSearchResultsTableView

   controller.searchResultsTableView.superview.backgroundColor = [UIColor blueColor];`

screenshot证实了我的假设。

如何修复此问题以允许“<”按钮接收点击事件? 我想避免修改controller.searchResultsTableView.superview,以便我的更改不会在iOS的未来版本中中断。

iOS 7中的哪些变化导致这种行为开始发生?

1 个答案:

答案 0 :(得分:2)

我仍在寻找更好的解决方案,但目前我的解决方案是在viewControllers viewDidLayoutSubviews中告诉你的观点转移到前面。代码看起来像这样。

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];

    [self.view bringSubviewToFront:self.navigationBar];
}