2016-08-16 36 views
1

在啓動我的應用程序,我把我「隱藏」標籤欄用:UITabBar - 更新alpha值並渲染它? (SWIFT)

UITabBar.appearance().alpha = 0.0

因爲一些邏輯,以決定如何在啓動後顯示已完成該完成的。這一切工作,耶! 但是(哦,Stackoverflow時間),當用戶完全搞砸我已經展示給他們的東西時,現在是標籤欄重新出現的時候了。因此,在完成塊我(顯然):

UITabBar.appearance().alpha = 1.0

瞧! 等待!好吧,dispatch_async(dispatch_get_main_queue())?運氣好的話? NO

好的很好,所以我們來做一個self.view.layoutIfNeeded()。應該這樣做,對吧? BONK,不!

那麼更奇怪的是什麼?那麼,當我在這個視圖之上打開一個模式(標籤欄仍爲,顯示爲爲alpha 0.0,但代碼已經指示此時爲1.0),然後關閉它,當視圖重新出現時,標籤欄被重繪(我假設),並出現在alpha爲1.0,並顯示其所有的榮耀。

那麼,什麼給了?在初始狀態已經被繪製到屏幕上並且alpha被更新後,我該如何讓條形圖顯示?

幫助!

回答

0

我不久前遇到過這個問題,除了在導航欄的上下文中。我很好奇,如果存在某種方式讓導航欄重新繪製命令。我觀察到的是,如果您滑動手指以移動新頁面(甚至略微),則會顯示正確的默認值。因此,我認爲這是一個重繪問題,直到某種交互發生纔會發生。不幸的是,似乎不可能以編程方式完成此操作。

然而,這裏的解決方案,我能爭取的是有關您的問題:我用

而是

[3斯威夫特],比使用navigationItem.titleView?.tintColor = UIColor.white

​​

但是,我不確定與您的方案的標籤欄關聯的是什麼。也許,你可以弄清楚。 (我將所有這些發佈給那些有我的問題的人,並解釋你的問題可能在哪裏)。

現在,爲您的情況。我認爲將alpha設置爲0可能不是解決您的問題的最佳方式。

試試這個:

UITabBar.appearance().isHidden = true

希望我的解決方案的工作或者這會導致你在正確的方向。