Sur iOS 10, ce code ne fonctionne pas pour supprimer la ligne d'ombre tabBar:
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
Quelqu'un sait, que dois-je faire pour l'enlever?
Sur iOS 9.3
avec ces deux lignes, la ligne est supprimée, mais iOS 10
ignore la commande setShadowImage
.
supprime la ligne de dessus pour @iOS 13.0
let appearance = tabBar.standardAppearance
appearance.shadowImage = nil
appearance.shadowColor = nil
tabBar.standardAppearance = appearance;
supprime la ligne de dessus pour iOS 12.0 et versions antérieures
tabBar.shadowImage = UIImage()
tabBar.backgroundImage = UIImage()
Essayez juste de beugler le code pour iOS 1: -
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"fondoTabBar"]];
[UITabBar appearance].layer.borderWidth = 0.0f;
[UITabBar appearance].clipsToBounds = true;
return YES;
}
Swift 3.x
UITabBar.appearance().layer.borderWidth = 0.0
UITabBar.appearance().clipsToBounds = true
Pour iOS 1
if (@available(iOS 13.0, *)) {
UITabBarAppearance *appearance = [self.tabBarController.tabBar.standardAppearance copy];
appearance.shadowImage = nil;
appearance.shadowColor = nil;
self.tabBarController.tabBar.standardAppearance = appearance;
}
Testé sur iOS 12.1
override func viewDidLoad() {
// Remove default border line
tabBar.shadowImage = UIImage()
tabBar.backgroundImage = UIImage()
tabBar.backgroundColor = UIColor.white
}
Pour iOS 10, le style de la barre de tabulations changé en noir a fait l'affaire
self.tabBarController.tabBar.shadowImage = UIImage()
self.tabBarController.tabBar.barStyle = .Black
Cela fonctionne pour moi @ iso13:
AppDelegate.Swift
UITabBar.appearance().clipsToBounds = true
UITabBar.appearance().shadowImage = nil
ou
UITabBar.appearance().clipsToBounds = true
UITabBar.appearance().layer.borderWidth = 0
ou
UITabBar.appearance().clipsToBounds = true
UITabBar.appearance().layer.borderColor = UIColor.clear.cgColor
Je n'ai pas la réputation de commenter mais pour ajouter à la réponse de gnoix, j'ai eu un problème légèrement différent en ce que je voulais l'ombre et l'arrière-plan clair donc je l'avais dans Swift
if #available(iOS 13.0, *) {
let appearance = tabBar.standardAppearance.copy()
appearance.configureWithTransparentBackground()
tabBar.standardAppearance = appearance
} else {
tabBar.backgroundColor = UIColor.clear
let image = UIImage(ciImage: CIImage(color: CIColor.clear)).af_imageAspectScaled(toFit: tabBar.bounds.size)
tabBar.backgroundImage = image
tabBar.shadowImage = image
}
Solution de travail à partir d'iOS 13.
// remove top line
if #available(iOS 13.0, *) {
// ios 13.0 and above
let appearance = tabBar.standardAppearance
appearance.shadowImage = nil
appearance.shadowColor = nil
appearance.backgroundEffect = nil
// need to set background because it is black in standardAppearance
appearance.backgroundColor = .someColor
tabBar.standardAppearance = appearance
} else {
// below ios 13.0
let image = UIImage()
tabBar.shadowImage = image
tabBar.backgroundImage = image
// background
tabBar.backgroundColor = .someColor
}
Vous pouvez le faire de cette façon dans votre FirstViewController.Swift:
Swift 4.2
self.tabBarController!.tabBar.layer.borderWidth = 0.50
self.tabBarController!.tabBar.layer.borderColor = UIColor.clear.cgColor
self.tabBarController?.tabBar.clipsToBounds = true
Changez simplement la couleur de la bordure comme vous le souhaitez.
J'ai eu le même problème dans iOS 10. J'ai résolu ce problème en changeant simplement la hauteur de UITabBar (par défaut, 49). Vérifiez-le ici comment changer la hauteur.
C'est une image d'ombre (propriété) de la barre d'onglets. Essayez les solutions suivantes et voyez.
Essayez ceci, ** Objective-C **
//Remove shadow image by assigning nil value.
[[UITabBar appearance] setShadowImage: nil];
// or
// Assing UIImage instance without image reference
[[UITabBar appearance] setShadowImage: [[UIImage alloc] init]];
** Swift **
//Remove shadow image by assigning nil value.
UITabBar.appearance().shadowImage = nil
// or
// Assing UIImage instance without image reference
UITabBar.appearance().shadowImage = UIImage()
Voici Apple guide pour shadowImage .
@available(iOS 6.0, *)
open var shadowImage: UIImage?
La valeur par défaut est nil. Si non nul, une image d'ombre personnalisée à afficher à la place de l'image d'ombre par défaut. Pour qu'une ombre personnalisée soit affichée, une image d'arrière-plan personnalisée doit également être définie avec -setBackgroundImage: (si l'image d'arrière-plan par défaut est utilisée, l'image d'ombre par défaut sera utilisée).
Vous devez implémenter les deux méthodes suivantes en même temps:
[[UITabBar appearance] setShadowImage:[UIImage new]];
[[UITabBar appearance] setBackgroundImage:[UIImage new]];