iOS 11搜索栏平滑消失

时间:2018-03-09 13:29:51

标签: ios swift ios11 searchbar

我遇到了一个小问题,我在我的应用程序中实现了新的iOS 11的样式搜索栏,我注意到它消失的动画与消息中的动画稍有不同。它更快,更不平滑。

任何人都曾遇到过这个"问题" ?

以下是我使用的代码:

searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.delegate = self

if #available(iOS 11.0, *) {
    navigationItem.searchController = searchController
} else {
    tableView.tableHeaderView = searchController.searchBar
    searchController.searchBar.barTintColor = .white
    searchController.searchBar.layer.borderColor = UIColor.white.cgColor
    searchController.searchBar.layer.borderWidth = 1
}
definesPresentationContext = true
searchController.searchBar.placeholder = "all_search".localized

修改 enter image description here

我不知道它是否会对你有所帮助,但我正在以正常的速度滚动。 谢谢

4 个答案:

答案 0 :(得分:0)

当您的表格视图不会一直显示在视图顶部时,就会发生这种情况。确保您的表格视图位于"后面"导航栏并使用扩展边缘,如果导航栏不透明,则在不透明边缘下延伸。

答案 1 :(得分:0)

试试这个,它为我修复了它。我使用了不同的UIViewController作为searchResultsUpdater,并将extendedLayoutIncludesOpaqueBars设置为true。

ggsave(marrangeGrob(grobs = l2, nrow = 3, ncol =1), file = "plots.png")

答案 2 :(得分:0)

添加

self.extendedLayoutIncludesOpaqueBars = true

为我的viewDidLoad解决了这个问题,您的导航栏不能半透明,请注意,extendedLayoutIncludesOpaqueBars = true归因于拥有表格视图的主视图。

答案 3 :(得分:-1)

UIView.animate(withDuration: 1, animations: { 
//your codes to implement
}, completion: nil)

更改withDuration:以秒为单位