【问题标题】:UISearchController / UINavigationBar shows broken animation when used within UINavigationControllerUISearchController / UINavigationBar 在 UINavigationController 中使用时显示损坏的动画
【发布时间】:2018-12-28 03:48:46
【问题描述】:

我有这顶NavigationController 帽子,它的NavigationBar 启用了大标题。根ViewController 有一个SearchController,并且在ViewControllerNavigationItem 中将 hidesSearchBarWhenScrolling 设置为 True,因为我不希望 SearchBar 始终可见。 ViewController 有一个 TableView,当您点击其中一个项目时,将使用故事板 segue 将相同 ViewController 的新实例推送到导航堆栈。但是,当查看当前ViewController 和新ViewController 之间的过渡时,可以观察到动画看起来不正确:一旦新ViewController 移动到SearchBar 中,SearchBar 就会变为空,仅显示其背景.当新的ViewController 最终完全可见时,SearchBar 将消失,没有任何动画。

这就是我添加SearchController 的方式(这里没什么特别的):

class MyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        let searchController = UISearchController(searchResultsController: nil)
        navigationItem.searchController = searchController
        navigationItem.hidesSearchBarWhenScrolling = true
    }
}

所以从“一”导航到“二”时的样子:

UISearchController / UINavigationBar shows broken animation when used within UINavigationController

有没有办法让它看起来更好看?当然,在新的ViewController 中,SearchBar 最初不应该是可见的,所以它必须以某种方式消失。但我认为旧的ViewController 上的SearchBar 可能应该以某种方式淡出,而不是停留在那里,然后在过渡到新的ViewController 完成时突然隐藏。希望我只是在这里做错了什么......

谢谢大家,圣诞快乐,

彼得

【问题讨论】:

    标签: ios swift uinavigationbar uisearchbar


    【解决方案1】:

    尝试在 viewWillDissappear 方法中将搜索控制器设置为 nil。

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        self.navigationItem.searchController = nil
    }
    

    【讨论】:

    • 这实际上似乎有所改善,因为现在“一”中扩展的 SearchBar 将作为过渡到“二”的一部分移出屏幕。在“二”中,可以在我的视频中看到的闪烁消失了。不过,我不确定SearchBar 是否打算以这种方式进行动画处理。所以我想我会从那里做更多的测试。
    【解决方案2】:

    好吧,我终于找到了一些非常有用的东西,但在问我的问题之前我找不到:

    Broken UISearchBar animation embedded in NavigationItem

    太糟糕了,这自 iOS 11 以来就已为人所知,但仍未修复。

    【讨论】:

      猜你喜欢
      • 2021-02-10
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-01
      • 2013-10-13
      • 1970-01-01
      相关资源
      最近更新 更多