2017-03-12 13 views
1

私の目標は簡単です。タブバーのデフォルトの背景色を自分の色に変更します。私はすべてのUIViewControllerプログラムでタブバーの背景色を変更するにはどうすればいいですか?

import UIKit 

class MyTabController: UITabBarController { 

    override func viewWillAppear(_ animated: Bool) { 
     super.viewWillAppear(animated) 
     self.tabBar.backgroundColor = .black 
    } 
} 

上の色を変更する必要がないように

はたとえば、デフォルトでは、私はUITabBarControllerの私自身のサブクラスを作成し、この

enter image description here

のように見えます結果は私が期待していたものとは異なります。

enter image description here

私はその後、私はUIColorと色はまったく同じに見えますカスタムに変更し、多分それは色だと思いました。

アクティブではなく、背景

self.tabBar.tintColor = UIColor(red:1.00, green:0.23, blue:0.19, alpha:1.0) 

は、結果が何をしたか

enter image description here

になりますときに私は、アイコンの色を同様にバーの色合いの色を変更しようとしたが、その変化私は間違っている?

+0

[UITabBarの外観]ここで素敵な答えは http://stackoverflow.com/questions/30041127/ios-8-tab-bar-item-background-colour – ekiyanov

答えて

2

self.tabBar.barTintColorを使用するか、UIBarStyleself.tabBar.barStyleを見て、それが機能するかどうかを確認してください。

+0

barTintColorはアイコンの色を変更するだけではありません背景 – sinusGob

+0

私はその解決策を試しました – sinusGob

+0

今は確かに、あなたはtintColorではなくbarTintColorを試しましたか? – hola

0

私は私のアプリで同じ問題を抱えていたが、私はタブバーの背景にグラデーション画像を設定したいと私は、次のを思い付いた:私はグラデーションを描画する機能を作成したとのインスタンスを使用で がメソッドをapplicationDidFinishLaunching私のUITabBarControllerは、デバイスの幅に応じて正しいグラデーションフレームを設定します。

- (UIImage *)drawGradientInView:(UITabBarController *) tabBarVC { 
    CAGradientLayer *gradient = [CAGradientLayer layer]; 
gradient.frame = CGRectMake(CGRectGetMinX(tabBarVC.tabBar.frame), CGRectGetMinY(tabBarVC.tabBar.frame), CGRectGetWidth(tabBarVC.view.frame), CGRectGetHeight(tabBarVC.tabBar.frame)); 

    //set up your gradient 
    //...... 

    UIImage *gradientImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return gradientImage; 
} 

UITabBarController

UITabBarController *tabVC = (UITabBarController *)[UIApplication sharedApplication].windows.firstObject.rootViewController; 

のインスタンスを取得し、あなたの勾配が、私はそれが正しいアプローチだが、それは私のために仕事をしたかはわからない

[UITabBar appearance].backgroundImage = [self drawGradientInView:tabVC]; 

を設定します。

関連する問題