2014-10-09 12 views
7

Staram się aby moje umieszczenie zakładek przejrzyste, rozglądałem ale znalazłem teksty powstałe w częściowo i nie w pełni przejrzyste tabBars a niektóre były dla IOS 5 itdcałkowicie przezroczysty UITabBar w iOS 8

Chciałbym tego dokonać, jak widać na rysunku 3:

enter image description here

Jaki jest najprostszy sposób, aby osiągnąć ten cel?

myślałem w ten sposób:

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

ale wynik nie był dokładnie taki doskonały!

enter image description here

Naprawdę doceniam pomoc :)

poważaniem Erik

Aktualizacja

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

Odpowiedz

22

Czy próbował barTintColor?

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

To powinno załatwić sprawę.

+0

sam wynik z kodem I umieścić w moim zaktualizowanej pytanie:/- I umieścić ten kod w metodzie viewWillAppear, czy to prawda? – Erik

+0

@Erik 'viewWillAppear:' jest za późno. Spróbuj umieścić go w aplikacji 'app: didFinishLaunchingWithOptions 'AppDelegate i sprawdź, czy to pomaga. –

+0

@JohannesFagrenkrug Niestety ten sam wynik z kodem w mojej aktualizacji napisanym w didFinishLaunchingWithOptions: – Erik

6

Trzeba podklasy UITabBarController aw viewdidload: należy umieścić ten kod:

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

Nie użyłem podklasy, ale "setShadowImage" było sekretem mojego problemu, +1 :) – Olie

19

Swift 3.0

... nazywają ten kod w didFinishLaunchingWithOptions w AppDelegate za

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

Rezultatem będzie przezroczyste tło dla każdego paska UITabBar.

+0

Po tak wielu próbach różnych rzeczy i rozwiązań w Internecie, sprawiło to, że tabbar jest "półprzezroczysty", ale teraz czuje to jest zbyt półprzezroczyste i nie ma w ogóle żadnego rozmycia. Wierzę, że jest to tabBar.backgroundImage = UIImage(), które to powoduje. Każda dodatkowa pomoc, która może wygenerować ten niezły efekt rozmycia zamiast pełnej przejrzystości? – c0d3Junk13

0

To proste rozwiązanie ustalone mój problem:

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