gpt4 book ai didi

swift - NavigationBar 上的 iOS 11 额外空间

转载 作者:行者123 更新时间:2023-11-28 15:08:03 25 4
gpt4 key购买 nike

我更改了我的 searchBar 代码:

self.navigationItem.titleView = searchNavigation.searchController.searchBar;

到:

if (@available(iOS 11.0, *)) {
self.navigationItem.searchController = searchNavigation.searchController;
self.navigationController.navigationBar.prefersLargeTitles = NO;
self.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeNever;
} else {
self.navigationItem.titleView = searchNavigation.searchController.searchBar;
}

但是在 ios 11 上尝试时它看起来像

enter image description here

在 searchBar 上有额外的空间,当我开始输入它的 slide top top 时看起来很正常

enter image description here

最佳答案

首先,对于 iOS 11,您将搜索 Controller 分配给导航项 searchController 属性,而不是 titleView。如果这样做,搜索栏就会出现在导航栏下方,如您所见。

其次,UISearchController 上有一个名为 hidesNavigationBarDuringPresentation 的属性,它控制搜索栏是否向上移动以在使用时隐藏导航栏。

要为 iOS 11 复制以前版本的内容,请改为执行以下操作:

if (@available(iOS 11.0, *)) {
self.navigationItem.titleView =
searchNavigation.searchController.searchBar;
searchNavigation.searchController.hidesNavigationBarDuringPresentation = NO;
self.navigationController.navigationBar.prefersLargeTitles = NO;
self.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeNever;
} else {
self.navigationItem.titleView =
searchNavigation.searchController.searchBar;
}

关于swift - NavigationBar 上的 iOS 11 额外空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48150334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com