【问题标题】:UISearchDisplayController's full-screen background intercepts touch events in iOS 7iOS 7中UISearchDisplayController的全屏背景拦截触摸事件
【发布时间】:2013-09-20 19:43:33
【问题描述】:

我有一个不会占据整个屏幕的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 中的哪些变化导致这种行为开始发生?

【问题讨论】:

  • 提示:iOS 7 中的新标准是始终在导航栏中显示搜索栏。你可以用UISearchDisplayController.displaysSearchBarInNavigationBar = YES;来做到这一点你可以放一个UIBarButton来显示搜索栏。
  • 我不清楚你为什么会得到这些结果。使用最小的示例应用程序提交错误将非常有用。
  • 感谢您的研究为我节省了很多时间.. 可以解决 my 问题

标签: ios uitableview ios7 uisearchdisplaycontroller


【解决方案1】:

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

- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-17
    相关资源
    最近更新 更多