ios - UITabBar - 更新 alpha 值并渲染它? ( swift )

标签 ios swift xcode grand-central-dispatch uitabbar

启动我的应用程序后,我设置了“隐藏”选项卡栏:

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/

相关文章:

ios - 当我不断向 View 添加标签时, ScrollView 不起作用

ios - 如何在 iOS 模拟器上进行全屏截图

ios - (Cocos2D) 检测显示的是哪个CCScene?

ios - 如何将rightBarButtonItem传递给TabBarController中的所有ViewController?

ios - 从新项目更新 iOS 应用程序

ios - SceneKit中如何实现运动模糊效果?

swift - 为什么AVAudioPlayer的currentTime和duration为零?

swift - UIAccessibilityTrait可调不进入increment()或decrement() swift

ios - iOS 会在内存崩溃前总是发送内存警告吗?

ios - 这些 Dsymutil 警告在 XCode 4.5 中意味着什么?