[英]iOS13 - UITableView + UISearchController with custom hidesSearchBarWhenScrolling behavior
在 iOS 13 上,如果将hidesSearchBarWhenScrolling
设置为 true,视图控制器将隐藏搜索栏,您必须向下滚动才能显示它。 如果您将其设置为false
则它会立即显示并且不会消失。
我认为这是一种合理的行为,假设最终用户都熟悉 Apple 产品的工作方式。 鉴于情况似乎并非如此,我想在第一次访问时显示搜索栏,但是如果用户开始向上滚动,搜索栏将被隐藏。 所以这是真/假的混合行为。
这适用于 iOS12,我在viewDidAppear
设置了hidesSearchBarWhenScrolling = true
,但现在在 iOS 13 上并非如此。 表格滚动,但搜索栏保持在顶部,而不是与表格视图一起滚动(顺便说一句,这只是因为屏幕没有再次呈现)。
知道如何去做吗? 我尝试更改 tableview 的内容偏移量,但真的没有运气。
对我来说,它在viewDidLoad()
方法中添加以下行后起作用:
navigationController!.navigationBar.sizeToFit()
无需指定hidesSearchBarWhenScrolling
因为我认为默认情况下它是true
,但是如果您仍然看到搜索栏,那么您可以将其设置为true
以隐藏它。
我遇到了和你一样的问题,看起来这个问题只出现在 iOS 13 中。 在 iOS 14 中,您的解决方案完美运行。 要使其在 iOS 13 中工作,您需要添加
self.navigationItem.hidesSearchBarWhenScrolling = true
self.navigationController?.view.setNeedsLayout() // add this line
在viewDidAppear
它适用于模拟器 iOS 13.7 我希望它也适用于你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.