2014-06-26 104 views
0

我想知道如何完全將UITabBar按鈕完全替換爲圖片(即圖片下方沒有任何文字,類似於Instagram或Polar中的樣式)。如何在UIITabBar中將完整圖像設置爲按鈕?

我試過按照guide中的建議使用[tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:@"option1Selected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"option1.png"]];,但它仍然包含底部的文字。幫助表示讚賞 - 謝謝!

enter image description hereenter image description here

+0

你看過UITabBarItem方法,initWithTitle:image:selectedImage:? – rdelmar

回答

1

你需要設置edge insetsiOS 7及以後的版本使用不同的image rendering options。我用一個簡單的OS_version check並執行如下它:

定義一個常量,OS_version檢查:

#define DEVICE_SYSTEM_VERSION [[[UIDevice currentDevice] systemVersion] floatValue] 

然後用下面的代碼在你的基地的viewController:

UIImage *yourSelectedImage = [UIImage imageNamed:@"option1Selected.png"]; 
UIImage *yourUnSelectedImage = [UIImage imageNamed:@"option1.png"]; 

viewController.tabBarItem = [[UITabBarItem alloc] init]; 

if (DEVICE_SYSTEM_VERSION >= 7) 
{ 
    [yourViewController.tabBarItem setImage:[yourUnSelectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
    [yourViewController.tabBarItem setSelectedImage:[yourSelectedImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
} 
else 
{ 
    [yourViewController.tabBarItem setImage:yourUnSelectedImage]; 
    [yourViewController.tabBarItem setFinishedSelectedImage:yourSelectedImage withFinishedUnselectedImage:image]; 
} 


// set the title to be an empty string 
yourViewController.tabBarItem.title = @""; 

// set edge insets so that the image occupies the entire area 
if (DEVICE_SYSTEM_VERSION <= 7) 
{ 
    yourViewController.tabBarItem.imageInsets = UIEdgeInsetsMake(8, 0, -8, 0); 
} 
else 
{ 
    yourViewController.tabBarItem.imageInsets = UIEdgeInsetsMake(0, 0, 0, 0); 
} 

這個工作爲了我。希望這可以幫助! :)

+0

這與一些小的調整工作 - 謝謝! – daspianist

相關問題