我正在開發一個新的應用程序,我面臨一些問題來定製UITabBar並使其工作(設計)偉大的iPhone 5和6使用@ 2倍圖像。UITabBar和UITabBarItem與特定的圖像@ 2x的iPhone 5和iPhone 6
在AppDelegate.m,在didFinishLaunchingWithOptions方法,我設置爲背景圖像時,項目選擇:
//TABBAR
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UITabBar *tabBar = tabBarController.tabBar;
UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0];
UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1];
UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2];
UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:3];
UITabBarItem *tabBarItem5 = [tabBar.items objectAtIndex:4];
[[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"tab_bg"]];
[[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"icone_home_selecionado"]];
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
然後,在相同的方法中,我設置圖像和插圖每個Item:
tabBarItem1.title = nil;
tabBarItem1.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
[tabBarItem1 setImage:[[UIImage imageNamed:@"icone_home_teste"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
tabBarItem2.title = nil;
tabBarItem2.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
[tabBarItem2 setImage:[[UIImage imageNamed:@"icone_home_teste"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
tabBarItem3.title = nil;
tabBarItem3.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
[tabBarItem3 setImage:[[UIImage imageNamed:@"icone_home_teste"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
tabBarItem4.title = nil;
tabBarItem4.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
[tabBarItem4 setImage:[[UIImage imageNamed:@"icone_home_teste"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
tabBarItem5.title = nil;
tabBarItem5.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
[tabBarItem5 setImage:[[UIImage imageNamed:@"icone_home_teste"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]];
我的問題是有關iPhone 5,並使用相同的@ 2倍的圖像6寬度,因爲iPhone 5有640像素(320pts)和iPhone 6有750px(375pts),所以我決定創建一個名爲selectedIndicatorImage「 [email protected]「的寬度大小= 150px
因爲我有5 UITabBarItem,所以5分之750= 150像素(每個項目)
圖片[email protected](150像素X 96PX):
它真正偉大的作品時,你可以在iPhone 6上運行:
但是,當在iPhone 5上測試它時,選擇該項目時,UITabBarItem區域將擴展爲相同的150像素(與圖像寬度相同)inst的EAD減少至128像素(它想有這樣的尺寸,以適應iPhone 5),你可以看到:
(注意,從第一項到例如第二項的寬度差,但它發生在所有他們似乎選定的圖像覆蓋在UITabBarItem)
我的@ 2x圖像有150px,但因爲我應該使用@ 2x圖像爲iPhone 5和6,我如何處理這種情況下適合圖像UITabBarItem?它似乎只會有效,如果我有一個圖像150像素(6)和另一個圖像128像素(5)
是否有任何解決方案使用相同的@ 2x圖像或我需要編碼來識別屏幕大小和然後選擇哪個圖像?
2014年11月22日提問,仍然沒有答案? – myexec 2015-01-11 18:51:07
@Fernando對此有何強有力的解決方案?我也面臨同樣的問題:http://stackoverflow.com/questions/30460648/remove-mask-from-deselected-tabs-uitabbaritem-swift/30462346#30462346 – Bonnke 2015-05-26 21:07:55
@Bonnke不幸的是我找不到一個很好的解決方案,所以遠,我的解決方法(它的恥辱)是非常類似於下面的答案,檢查屏幕大小,然後選擇正確的圖像: -/ – Fernando 2015-05-28 05:56:25