2016-11-03 16 views
0

私は再起動せずにUI設定を更新する設定マネージャを作成しました。ほとんどの設定では、再描画を強制することはできますが、タブバーの方が制限されているようです。Swift:Refresh Tab Bar背景色が動的に

私は設定変更通知(注:これはいつでもviewDidLoad後にすることができる):受信したときに、次のと私のUITabBarController内タブバーを更新

self.tabBar.backgroundColor = tabBarBackgroundColour 

をこれが色を更新するだけで、約5後にん-10秒。

私は、タブバーとビューの両方でsetNeedsLayoutsetNeedsDisplayを使用して更新を強制するさまざまな方法を試しましたが、いずれも機能しませんでした。

self.tabBar.setNeedsLayout() 
self.tabBar.setNeedsDisplay() 

または

self.view.setNeedsLayout() 
self.view.setNeedsDisplay() 

私は他の人が画像を更新する際に同様の問題があったが、無駄にしている見るように私はまた、個々のタブバーの項目を更新しようとしました。

+1

あなたは本当にメインスレッドから色を更新していますか?バックグラウンドスレッドからUIを更新すると、描画が遅れることがあることを思い出します... – JohnnyAW

答えて

0

メインスレッドの背景色を更新していることを確認してください。

DispatchQueue.main.async { [weak self] in 
    self?.tabBar.backgroundColor = tabBarBackgroundColour 
    }