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:
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:
Vraiment apprécier l'aide! :)
Cordialement, Erik
Mettre à jour
// Make the tabBar transparent
[[UITabBar appearance] setBarTintColor:[UIColor clearColor]];
self.tabBarController.tabBar.translucent = YES;
Avez-vous essayé le barTintColor
?
[[UITabBar appearance] setBarTintColor:[UIColor clearColor]];
[[UITabBar appearance] setBackgroundImage:[UIImage new]];
Cela devrait faire l'affaire.
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.
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;
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)