web-dev-qa-db-ja.com

Swift 2.2タブバーコントローラーの背景色を変更する方法

私はタブバーの背景を変更しようとしていて、ここObjCで多くの投稿を読んでいますが、それらの多くはかなり古いものです。しかし、私が使用しているスイフトには何も見つかりませんでした。

ついにコードからそれを行う方法を理解したので、テーマの色を変更するたびにタブバーの色を変更できます。これが私が使用した参照です:

  override func viewWillAppear(animated: Bool) {
    // set tab bar background color, including the More tab
    self.tabBarController?.tabBar.backgroundColor = UIColor.blueColor()
  }

このコードを、アプリの起動時に表示される最初のタブのView Controllerに配置して、「最初に」実行されるようにします。タブが8つあり、[その他...]タブを使用している場合でも、私が知る限りは正常に機能します。

また、同じコードをさまざまなタブのボタンにバインドしたので、コードのどこからでもタブバーの色を変更できます。

しかし、初心者として、タブバーの色を変更するのに最適な場所かどうかはわかりません。これが間違った場所である場合は、私を訂正してください。

このコードをここに投稿すると、数時間節約できたはずです。他の誰かの(Swift)時間を節約できることを願っています。

9
Kevin

これは、UITabBarの色を変更するための優れた方法です。 UITabBarController内に埋め込まれているすべてのviewControllerで色を設定することを避けたい場合は、UITabBarControllerのサブクラスを作成してそこに設定することもできます。このように、最初にどのページが表示されても、色が設定されます。

UITabBarControllerのサブクラスを作成するには、ファイル>新規>ファイル> cocoa touchクラスに移動します...次に、この写真のようにファイルを設定します

Add File

ストーリーボードで、tabBarControllerにカスタムクラスを設定します

Storyboard

最後に、ファイルにMyTabBarController(またはあなたがそれを呼んだもの)を作成しました:

class MyTabBarController: UITabBarController {

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    self.tabBar.barTintColor = .blueColor()
}
...
19
Jeff Lewis

Xcode 9

ストーリーボード

ビューコントローラ(現在はTabBarViewController)で背景色を直接設定することができます。このためには、キーパスを定義する必要があります。 nestedビューの背景色をremoveすることを忘れないでください。スーパービューの背景色と重なります。

enter image description here

1
dimpiax

あなたはこのように変えることができます

tabBarController.tabBar.barTintColor = [UIColor blackColor];

0