web-dev-qa-db-fra.com

UITabBar complètement transparent dans iOS 8

J'essaie de rendre mon TabBar transparent, j'ai cherché mais tout ce que j'ai trouvé était des articles résultant en des TabBars partiellement transparents et partiellement transparents, et certains étaient destinés à IOS 5, etc.

Je voudrais accomplir cela comme on le voit dans Sketch 3:

enter image description here

Quel est le moyen le plus simple d'y parvenir?

J'ai pensé faire ceci:

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

mais ce résultat n'était pas exactement parfait:

enter image description here

Vraiment apprécier l'aide! :)

Cordialement, Erik

Mettre à jour

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

Avez-vous essayé le barTintColor?

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

Cela devrait faire l'affaire.

27

Swift 3.0

... appelle ce code dans la fonction didFinishLaunchingWithOptions de AppDelegate 

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

Le résultat sera un fond transparent pour chaque UITabBar.

24
user3378170

Vous devez sous-classer UITabBarController et dans le viewdidload:, vous devez mettre ce code:

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;
6
Lior L.

Cette solution facile a résolu mon problème:

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