2014-10-09 98 views
7

我試圖讓我的TabBar透明的,我已經搜查,但所有我發現了導致部分並沒有完全透明tabBars文章,有些是爲iOS 5等在iOS的8

完全透明UITabBar我想做到這一點所看到的草圖3:

enter image description here

什麼是實現這一目標的最簡單的方法?

我想這樣做的:

// Make the tabBar transparent 
self.tabBarController.tabBar.backgroundColor = [UIColor clearColor]; 
self.tabBarController.tabBar.translucent = YES; 

但結果不完全完美!

enter image description here

真的很感謝幫助:)

真誠, 埃裏克

更新

// Make the tabBar transparent 
[[UITabBar appearance] setBarTintColor:[UIColor clearColor]]; 
self.tabBarController.tabBar.translucent = YES; 

回答

22

您是否嘗試過的barTintColor

[[UITabBar appearance] setBarTintColor:[UIColor clearColor]]; 
[[UITabBar appearance] setBackgroundImage:[UIImage new]]; 

這應該做的伎倆。

+0

同樣的結果與我把我的更新問題的代碼:/ - 我把這個代碼在viewWillAppear中的方法,是正確的? – Erik 2014-10-09 13:26:08

+0

@Erik'viewWillAppear:'爲時已晚。嘗試把它放在AppDelegate的'application:didFinishLaunchingWithOptions:'中,看看是否有幫助。 – 2014-10-09 17:12:26

+0

@JohannesFagrenkrug不幸的是,我的更新中的代碼與didFinishLaunchingWithOptions中的代碼相同: – Erik 2014-10-09 17:18:17

6

您需要繼承的UITabBarController,並在viewdidload:,你應該把這個代碼:

CGRect rect = CGRectMake(0, 0, 1, 1); 
UIGraphicsBeginImageContextWithOptions(rect.size, NO, 1.0); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetFillColorWithColor(context, [UIColor clearColor].CGColor); 
CGContextFillRect(context, rect); 
UIImage *transparentImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
[self.tabBar setBackgroundImage:transparentImage]; 
[self.tabBar setShadowImage:transparentImage];  
// self.tabBar.alpha = 0.0; 
+1

我沒有使用子類,但'setShadowImage'是我的問題的祕密,+1 :) – Olie 2015-06-02 23:52:26

19

雨燕3.0

...在AppDelegate中的didFinishLaunchingWithOptions調用此代碼

let tabBar = UITabBar.appearance() 
tabBar.barTintColor = UIColor.clear 
tabBar.backgroundImage = UIImage() 
tabBar.shadowImage = UIImage() 

結果將是每個UITabBar的透明背景。

+0

在互聯網上經歷了很多不同的事情和解決方案之後,這使得tabbar'半透明',但現在它感覺它太半透明,完全沒有模糊。我相信它的tabBar。backgroundImage = UIImage()導致這一點。任何額外的幫助,可以產生良好的模糊效果,而不是完全透明? – c0d3Junk13 2017-11-08 18:55:02

0

這種簡單的解決方案固定我的問題:

let size = CGSize(width: tabBar.bounds.size.width, 
         height: tabBar.bounds.size.height) 
tabBar.backgroundImage = UIImage.jotImage(with: UIColor.clear, size: size)