首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UISearchBarController iOS 11问题- SearchBar和范围按钮重叠

UISearchBarController iOS 11问题- SearchBar和范围按钮重叠
EN

Stack Overflow用户
提问于 2017-09-22 11:55:34
回答 7查看 7.5K关注 0票数 13

推荐这里这里。在第一个链接中没有回答。在第二个链接中,虽然答案没有被接受,但苹果开发者论坛的链接给出了错误。

在iOS 11之前:

iOS 11:

备注:相同的设备,相同的代码。

而且,这意味着,所有使用此功能的应用程序都必须重新发布?

EN

回答 7

Stack Overflow用户

发布于 2017-10-19 19:36:00

添加这些行为我修复了它:

代码语言:javascript
复制
override func viewDidLayoutSubviews() {
    self.searchController.searchBar.sizeToFit()
}
票数 7
EN

Stack Overflow用户

发布于 2017-11-26 22:41:48

我可以使用以下代码(根据格雷格的答案)在iOS11中正确显示初始外观:

代码语言:javascript
复制
[self.searchController.searchBar sizeToFit];

if (@available(iOS 11.0, *)) {
    self.navigationItem.searchController = self.searchController;
    self.navigationItem.hidesSearchBarWhenScrolling = NO;
} else {
    // Fallback on earlier versions
    self.tableView.tableHeaderView = self.searchController.searchBar;
}

然而,如果该应用程序是后台,然后恢复搜索栏是活跃的,外观将最终重叠,如上面的第二个屏幕截图所示。

我能够用以下方法解决这个问题:

代码语言:javascript
复制
[[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
    self.searchController.searchBar.showsScopeBar = NO;
    [self.searchController.searchBar sizeToFit];
    self.searchController.searchBar.showsScopeBar = YES;
    [self.searchController.searchBar sizeToFit];
}];

(当搜索栏处于活动状态时,我仍在研究如何解决界面方向更改后的布局问题-结果仍然是重叠的。)

票数 2
EN

Stack Overflow用户

发布于 2017-10-02 19:24:53

在雷·温德利希提交的雷达上,@benck发布了这个来自WWDC的回答,如果我没有弄错的话,它还没有被发布。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46364224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档