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

标签 ios uitableview ios7 uisearchdisplaycontroller

我有一个 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/

相关文章:

ios - 地址簿应该如何成为一个类的属性?

swift - 无法将数据从 UIPickerView 传递到 CustomTableViewCell

ios - 如何将数据传递到嵌入在TableViewCell中的UICollectionView(xCode-iOS-Swift 3)

ios - 发送本地sqlite文件到服务器

ios - iOS 7.0.2 MAC 地址问题

ios - AVCaptureSession 亮度

ios - 在表格 View 单元格上重复值 来自 API 响应的错误

ios - Xcode 9 中的 iTunes Store 操作失败

ios - UITextView 和单元格根据 textview 的内容动态更新高度?

OSX El Capitan 上的 Xcode 7.1,iOS 7 模拟器 - 它应该可以工作吗?