2012-10-07 73 views
5

我想創建一個UITabBar,我將使用外觀API進行自定義。我被困在嘗試從UITabBarItem中刪除標題標籤並調整圖像的大小以使其居中。如果您只是刪除標題文本,圖像下方和欄底部會有空白處。不帶標題標籤的自定義UITabBarItem

有誰知道如何製作一個沒有標題的UITabBarItem?

+0

確定調用,當'initWithTitle:圖片:標籤:'並通過零爲標題,和一個有效的指針的圖像,你還是將像素丟失爲空標題? –

+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"]]; 
    

所以,現在當用戶按任何標籤標籤欄更改背景以顯示正確的圖片。

這是當選擇第二選項卡我所得標籤欄:

Tab bar without labels

0

我對同樣的問題的解決方案:

1,使杆原點Y下,推外的空的空間屏幕。

2,重置背景以確保它覆蓋正確的位置。

6

設置標題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);