按下时隐藏底栏 - Iphone X 上的动画冻结

Posted

技术标签:

【中文标题】按下时隐藏底栏 - Iphone X 上的动画冻结【英文标题】:Hiding Bottom Bar When Pushed - Animation freezing on Iphone X 【发布时间】:2018-03-15 15:41:19 【问题描述】:

我遇到了一个我一生都无法解决的问题。这个问题只发生在 iPhone X 上。我添加了一个小视频,因为它很难准确解释发生了什么。

我还添加了我的故事板的屏幕截图,以便您查看流程。

当标签栏被隐藏时,几乎所有的人都经历了冻结。只有当我们访问类别 VC 时才会发生这种情况(使用 segue 以模态方式呈现,它也嵌入在导航控制器中。)

** 我还是 ios 开发的新手,所以如果我做错了什么,请随时分享 :)

视频: https://youtu.be/HC14zFxh-HM

发送给阅读器的代码:

@IBAction func sendToReader(_ sender: Any) 
    let myVC = storyboard?.instantiateViewController(withIdentifier: "ReaderRootVC") as! ReaderRootVC
    myVC.book = self.book
    myVC.hidesBottomBarWhenPushed = true
    navigationController?.pushViewController(myVC, animated: true)

关闭类别 VC 的代码:

@IBAction func navigationCancelBtnPressed(_ sender: Any) 
    self.navigationController?.dismiss(animated: false, completion: nil)

故事板:

【问题讨论】:

当您推送到另一个 VC 时,您想隐藏 UITabBar。对吗? 正确,除非我先打开类别 VC,否则它似乎可以正常工作。检查你的管视频,你会看到。 【参考方案1】:

在您的 ReaderRootVC 中,

override func viewWillAppear(_ animated: Bool) 
        super.viewWillAppear(animated)
        // Hide the Tab Bar
        self.tabBarController?.tabBar.isHidden = true
    

    override func viewWillDisappear(_ animated: Bool) 
        super.viewWillDisappear(animated)

        // Show the Tab Bar
        self.tabBarController?.tabBar.isHidden = false
    

【讨论】:

以上是关于按下时隐藏底栏 - Iphone X 上的动画冻结的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone 7 上的动画块冻结 UI 中调用 layoutIfNeeded

按下“停止”按钮时如何停止动画并冻结图像

如何在 iPhone 中隐藏/显示带有动画的 UIView

如何在 SwiftUI 中为按下时的导航链接设置动画?

按下时隐藏 iOS 按钮

如何制作类似于 iphone 删除动画的摆动动画