2012-10-07 5 views
5

外観APIを使用してカスタマイズするUITabBarを作成しようとしています。私はUITabBarItemからタイトルラベルを取り除き、画像を中央に置くようにサイズを変更しようとしています。タイトルテキストを削除するだけで、画像の下とバーの下に空白が表示されます。タイトルラベルなしのカスタムUITabBarItem

誰もがタイトルなしUITabBarItemを作る方法を知っていますか?

+0

を移動します空のタイトルにピクセルを失う? –

+1

はい、下部に空白のピクセルがいくつか表示され、画像が上に移動します。たとえば、バーの高さをアイテムイメージよりわずかに大きくすると、イメージは上に切り取られ、空のスペースが下になります – mrosales

答えて

7

今日は同じ仕事をしました。

私はアイテム画像のためのタブバーの完全なスペースを使用することはできませんので、私はタブバーの背景を変更するときにユーザーを押し任意のタブを。

  1. 最初の手順は、選択したすべてのタブに対してフルサイズのボタンを使用して背景画像を準備することです。

  2. 次にカスタムクラスを作成し、のviewDidLoadで最初のタブのためのカスタムクラスを設定背景画像では、あなたのタブバーコントローラ

  3. のためにそれを割り当てます。

    [[self tabBar] setBackgroundImage:[UIImage imageNamed:@"tabShopsActive"]]; 
    [[self tabBar] setSelectionIndicatorImage:[UIImage imageNamed:@"tabSelection"]]; 
    
  4. 内のすべてのUIControllerの背景の変更を追加します。 ViewWillAppear:

    UITabBarController *bar = [self tabBarController]; 
    [bar.tabBar setBackgroundImage:[UIImage imageNamed:@"tabDiscountsActive"]]; 
    

これで、ユーザーが任意のタブを押すと、タブバーが背景を変更して正しい画像を表示します。

2番目のタブが選択された私の結果のタブバーである:

Tab bar without labels

0

同じ問題のために私のソリューション:

1、、バー原点yが低く作る外の空きスペースを押してください画面。

2、バックグラウンドをリセットして、正しい位置をカバーするようにします。それでも、 `タイトルにnilを渡すと、画像への有効なポインタ:イメージ::タグ

6

あなたはinitWithTitle`呼び出すときと確信しているnilにタイトルを設定し、アイコン

self.tabBarItem = [[UITabBarItem alloc] initWithTitle:nil 
               image:[[UIImage imageNamed:@"icon_tabbar_inactive.png"] 
                imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] 
             selectedImage:[[UIImage imageNamed:@"icon_tabbar_active.png"] 
                imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 

// Move the tabbar icon to the middle of tabbar 
self.tabBarItem.imageInsets = UIEdgeInsetsMake(6.0, 0.0, -6.0, 0.0); 
関連する問題