启动我的应用程序后,我设置了“隐藏”选项卡栏:
UITabBar.appearance().alpha = 0.0
这样做是因为完成了一些逻辑以确定在启动时显示什么。一切正常,耶! 但是(哦,Stackoverflow 时间)当用户完成我向他们展示的内容时,标签栏就该重新出现了。所以在完成 block 中我有(显然):
UITabBar.appearance().alpha = 1.0
瞧! 不等了! 好吧,dispatch_async(dispatch_get_main_queue())
?运气好的话? 否
好吧好吧,让我们做一个self.view.layoutIfNeeded()
。应该这样做,对吧? BONK,不!
那还有什么奇怪的呢?好吧,当我在此 View 之上打开一个模态时(标签栏仍在 显示 alpha 0.0,但此时代码已经指示它为 1.0)并且然后关闭它,当 View 重新出现时,选项卡栏被重新绘制(我假设)并以 1.0 的 alpha 出现并显示出它所有的荣耀。
那么,是什么给了?在将初始状态绘制到屏幕上并更新 alpha 后,如何允许显示条?
帮助!
最佳答案
我不久前遇到过这个问题,除了在导航栏的上下文中。我也很好奇是否存在某种方法可以根据命令重绘导航栏。我观察到的是,如果您滑动手指以移动新页面(即使是轻微移动),则会出现正确的默认值。因此,我得出结论,这是一个在某种交互发生之前不会发生重绘的问题。不幸的是,似乎无法以编程方式完成此操作。
但是,这是我能够获得的与您的问题相关的解决方案:
[ swift 3]
而不是使用 navigationItem.titleView?.tintColor = UIColor.white
,
我用过:
UINavigationBar.appearance().titleTextAttributes = [NSForegroundColorAttributeName: UIColor.white, NSFontAttributeName: UIFont(name: "Copperplate", size: 24.0)]
但是,我不确定与您的场景的选项卡栏有什么关联。也许,你能弄明白。 (我将所有这些发布给遇到我的问题的人,并解释您的问题可能出在哪里)。
现在,针对您的情况。我认为将 alpha 设置为 0 可能不是解决问题的最佳方法。
试一试:
UITabBar.appearance().isHidden = true
希望我的解决方案有效,或者这会引导您朝着正确的方向前进。
关于ios - UITabBar - 更新 alpha 值并渲染它? ( swift ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38964852/