2016-09-19 15 views
1

XcodeをXcode 8にアップデートした後、私はこの奇妙な問題に直面しています。Xcodeに更新した後にタブバーとナビゲーションバーが暗くなった

タブバーの背景色は白ですが、その暗い色を示す代わりに

enter image description here

とする場合:私は、タブバーとTAB1はタブバーとナビゲーションを選択することで3つのタブは、次のようになります持っています私は、問題はTAB2私が選択した下の画像に

を修正します、他のタブを選択し

enter image description here

私はそれが起こっている理由はわかりませんが、tab1のViewControllerで私はtableViewを持っていて、Tab2で私はViewControllerを持っています

誰でも知っているのは誰ですか?

デバッグ階層:

TAB1が enter image description here


を選択されている他のタブが enter image description here

を選択したときに、私はなぜ知らないが、タブバーのUIVisualEffectBackdropViewの背景色がTAB1に黒で、その透明で 他のタブ

+0

これは、その上に別のビューまたはマスクがあるようです。背景だけでなく、タブの画像の色も異なるように見えます。または、アルファをチェックしてください。いくつかのアルファを設定していれば、以前のiOS SDKはそれを以前は理解できなかった可能性があります。 – pedrouan

+0

以下の答えをご覧ください。これはすでにあなたのために固定されることを願っています。 –

答えて

1

私のツールバーでシャドウを追加すると、問題が発生しました。

以下のコードは、Xcode7(swift 2)で適切な影を与えていましたが、Xcode 8(swift 3)タブバー+ナビゲーションバー):

toolbar.layer.masksToBounds = false 
toolbar.layer.shadowOffset = CGSize(width: -1, height: 1) 
toolbar.layer.shadowRadius = 1 
toolbar.layer.shadowOpacity = 0.5 
2

これはローカルで解決できます(例: CustomTabBarControllerがある場合)、およびグローバルに表示されます。私はあなたのためだけに、ここで両方のソリューションを提供しています:

1.ローカル:

class YourCustomTabBarVC: UITabBarController { 

    //MARK:- Initializers 
    required init?(coder aDecoder:NSCoder) { 
     super.init(coder: aDecoder) 
     __customInit() 
    } 

    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { 
     super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) 
     __customInit() 
    } 

    fileprivate func __customInit() { 
     addObservers() 

     //Customize TabBar appearance: 
     tabBar.backgroundColor = UIColor.white 
    } 
    } 

2.グローバル:あなたのAppDelegate.swiftに:

func application(_ application: UIApplication, 
       didFinishLaunchingWithOptions 
    launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    /* Your other code*/ 
    UITabBar.appearance().backgroundColor = UIColor.white // {UR_DESIRED_COLOR} 

} 

私は示唆していますグローバルな方法を使用します。その1行を追加してください!あなたは、ここのすぐ下にあなたに個人的な感謝のメッセージを書くためにスクランブルするでしょう! OPへの様々な理由で、この問題に苦しむ他の誰のために

4

:私はstop my view going under the navigation barに私のUIViewControllerのloadView()メソッドにラインedgesForExtendedLayout = []を追加したとき

この正確な問題は、私のために発生しました。したがって、その行を削除して代わりにnavigationController?.navigationBar.isTranslucent = falseを使って同じ目的を達成してください(ただし、John Doeの解決策も実行可能かもしれません)。私は、あなたのツールバーの下に表示されているビューがない場合、UIVisualEffectBackdropViewは不透明になり、ちょうど黒くなると思います。ツールバーが透明な場合は、暗いツールバーが表示されます。

+1

は私の問題を解決しました。ありがとう – cnu

関連する問題