item - tabbar ios
iOS 7 tabBar-line, ¿cómo eliminarlo? (12)
Agregue el siguiente código en el método AppDelegate.m
didFinishLaunchingWithOptions:
if ([[[UIDevice currentDevice] systemVersion] floatValue]>=7.0)
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
Apple ha agregado una pequeña línea sobre el tabBar en iOS 7 que se supone que funciona como una sombra o desvanecimiento entre el tabBar y la interfaz de usuario
Ya que estoy usando un tabBar hecho a medida, la línea es bastante irritante. ¿Cómo lo eliminas? Por favor, dime que es posible, de lo contrario tengo que rediseñar toda mi aplicación lol ...
/ Saludos
*Editar
Sloved mi problema con la siguiente línea de código:
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
Ahora puedes usarlo, con esta línea:
self.tabBarController.tabBar.barStyle = UIBarStyleBlack;
En iOS 8, el borde superior se puede eliminar configurando el estilo de la barra de pestañas en negro en el inspector.
En mi caso, también necesitaba establecer una sombra diferente, al final, lo único que funcionó al tiempo que también configuró una sombra personalizada fue agregar un punto UIView 1 alto de un solo punto encima de la barra de pestañas:
UIView *whiteLine = [[UIView alloc] initWithFrame:CGRectMake(0.0, -1.0, self.tabBar.frame.size.width, 1.0)];
whiteLine.backgroundColor = [UIColor whiteColor];
[self.tabBar addSubview:whiteLine];
Este código funciona bastante bien para mí (realmente no tengo imagen de fondo para la barra de pestañas):
[tab_main.tabBar setBackgroundImage:[[UIImage alloc] init]];
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
Y yo uso este código para agregar un marco también:
UIColor* color_green = UIColorFromRGB(0x348e5b);
tab_main.tabBar.layer.borderWidth = 0.50;
tab_main.tabBar.layer.borderColor = color_green.CGColor;
[[UITabBar appearance] setTintColor:color_green];
Espero que ayude.
Esto funciono para mi
UIImage* tabBarBackground = [UIImage new];
if(!OSVersionIsAtLeastiOS7())
{
tabBarBackground = [UIImage imageNamed:@"whitebg"];
}
[[UITabBar appearance] setShadowImage:tabBarBackground];
[[UITabBar appearance] setBackgroundImage:tabBarBackground];
No veo nada en la API de UITabBar
para afectar a ese separador, pero si el separador está dentro de la UITabBar (una subclase de UIView), espero que pueda insertar una nueva vista de UIView de un píxel encima de ella. Tendría que tomar una porción de la imagen que desea que aparezca allí y dibujarla en la nueva vista. Y no estoy seguro de que UITabBar impida de alguna manera agregar la subvista o evitar que la subvista esté en la parte superior. Pero ahí es donde empezaría.
Prueba esto, ** 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()
Aquí está el documento de Apple para shadowImage .
@available(iOS 6.0, *)
open var shadowImage: UIImage?
El valor predeterminado es nil. Cuando no es nula, una imagen de sombra personalizada para mostrar en lugar de la imagen de sombra predeterminada. Para que se muestre una sombra personalizada, una imagen de fondo personalizada también debe configurarse con -setBackgroundImage: (si se usa la imagen de fondo predeterminada, se usará la imagen de sombra predeterminada).
Rápido
Buena solución simple:
Escribe este código a continuación en tu clase de barra de pestañas personalizada. Entonces ocultará la línea de sombra horizontal.
self.tabBar.setValue(true, forKey: "_hidesShadow")
C objetivo
[self.tabBar setValue:@(YES) forKeyPath:@"_hidesShadow"];
UIImage* tabBarBackground = [UIImage imageNamed:@"tabbar_bg.png"];
[[UITabBar appearance] setShadowImage:tabBarBackground];
[[UITabBar appearance] setBackgroundImage:tabBarBackground];
[_tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tabtarsprnt"]]; //your custom image
[self.tabBarController.tabBar setClipsToBounds:YES];
Este código también resolvió el problema de mi
self.tabBarController = [[UITabBarController alloc] init];
[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"YOURIMAGE.png"]];
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];