web-dev-qa-db-ja.com

ストーリーボードを使用してTab Bar Controllerで選択した画像を設定する

Storyboardingを使用していますが、5つのタブがあるTab Bar Controllerがあります。ストーリーボードでは、タブバー項目の画像を設定できます。 Apple docsは、各タブバー項目に2つのアイコンを用意することを提案しています-1つは選択状態用、もう1つは非選択状態用です。

ストーリーボードを使用してこれを行う方法を理解することはできません。

58
Siddharth

ストーリーボードを使用して、選択したタブバーの画像を設定できます。試したところ、うまくいきました。 UITabbarItemを選択し、実行時属性「selectedImage」を追加し、「画像」として「タイプ」を選択し、値として画像の名前を指定します。

Setting selected image of Tabbar using storyboard

XCode 6.0を使用しており、私の最小展開ターゲットはiOS 8.0です。

145
Hamza Azad

XCode> = 8:の場合、Tabbarで選択/選択解除された画像の完全なソリューションがあります

  • 画像アセットに移動->画像を選択
  • Render ASを選択:「オリジナル画像」

enter image description here

  • その後、ストーリーボードに移動-> Tabbarアイテムを選択
  • 次のスクリーンショットに示すように、「属性インスペクター」で「選択した画像」と「画像」を設定します。

enter image description here

20
Sagar Sukode

XCode 8以降では、画像アセットで簡単に実行できます。画像を選択し、「元の画像としてレンダリング」を選択します。 (添付の画像を確認してください)..お楽しみください:) enter image description here

13
Infaz

はい、これはストーリーボードを使用して行うことはできません-コードを記述する必要があります。

UINavigationViewControllerviewDidLoadメソッドでは、次のコードを記述できます-

UITabBar *tabBar = self.tabBar;

UITabBarItem *targetTabBarItem = [[tabbar items] objectAtIndex:0]; // whichever tab-item
UIImage *selectedIcon = [UIImage imageNamed:@"name-of-selected-image.png"];
[targetTabBarItem setSelectedImage:selectedIcon];
11
Siddharth

これをストーリーボードで簡単に行うことができます。所有する各tabviewcontrollerには、階層内にTab Barアイテム(小さな青い星のように見える)が含まれている必要があります。これをクリックすると、右側の設定が下の画像のようになります。タブバーのタイトルと画像はここで変更できます。

enter image description here

7
Trianna Brannon

新しいXcode 8では、ハイポイントの回答で提案されているように、ランタイム属性を定義する必要なくStoryboardで実行できます。

Print Screen Tab Bar item

画像がこのサイズであることを忘れないでください:

  • @ 1x:約25 x 25
  • @ 2x:約50 x 50
  • @ 3x:約75 x 75
6
Tiago Mendes

最も簡単な方法は、インスペクターから画像を設定することだと思います。 Bar Item-> Imageというフィールドがあり、そこに画像名を設定する必要があります。 Tab Bar Item-> Selected Imageと混同しないように注意してください

enter image description here

5
Loebre

アイコンは、対応するView Controllerで設定する必要があります。これを行うと、コードを変更することなく、ストーリーボードのメインタブコントローラー内のビューコントローラーの順序を自由に再配置できます(objectAtIndex:0)各アイコンごと。

次の行をviewDidLoadメソッドに追加します。

 if (self.navigationController.viewControllers.count < 2)
     self.navigationController.tabBarItem.selectedImage = [UIImage imageNamed:@"image-selected.png"];

ifconditionを使用すると、ボタンが最上位のView Controllerに対してのみ変更されるようになります。これは、ナビゲーション階層のView ControllerをサブView Controllerとして再利用する場合に必要です。

3
krizzzn

Swift 3.0->タブバーボタンの画像を設定する理想的な方法は次のとおりです。

最初にボタンに使用する画像を設定します:

    let homeImage = UIImage(named: "TabHome")
    let homeTappedImage = UIImage(named: "TabHomeRed")

次に、タイプUITabButtonItemのボタンを設定します。

    let homeButton = UITabBarItem(title: homeText, image: homeImage, selectedImage: homeTappedImage)

    //with this method you set the image when the button is not selected 
    homeButton.image = homeImage?.withRenderingMode(UIImageRenderingMode.alwaysOriginal)


    //with this method you set the image when the button is selected 
    homeButton.selectedImage = homeTappedImage?.withRenderingMode(.alwaysOriginal)
3
MhmdRizk