Apple在iOS 7中的tabBar上添加了一条小线,它可以作为tabBar和UI之间的阴影或淡入淡出
由于我使用的是定制的tabBar,因此该行极具刺激性。你怎么删除它?请告诉我这是可能的,否则我需要重新设计我的整个应用程序大声笑....
/问候
*修改
使用以下代码行解决了我的问题:
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
答案 0 :(得分:22)
UIImage* tabBarBackground = [UIImage imageNamed:@"tabbar_bg.png"];
[[UITabBar appearance] setShadowImage:tabBarBackground];
[[UITabBar appearance] setBackgroundImage:tabBarBackground];
答案 1 :(得分:14)
这些代码对我来说效果很好(我没有标签栏的背景图片):
[tab_main.tabBar setBackgroundImage:[[UIImage alloc] init]];
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
我也使用这些代码添加框架:
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];
希望有所帮助。
答案 2 :(得分:7)
在iOS 8中,可以通过在检查器中将标签栏样式设置为黑色来删除顶部边框。
答案 3 :(得分:5)
<强>夫特强>
很简单的解决方案:
将以下代码写在自定义标签栏类中。然后它会隐藏水平阴影线。
self.tabBar.setValue(true, forKey: "_hidesShadow")
目标C
[self.tabBar setValue:@(YES) forKeyPath:@"_hidesShadow"];
答案 4 :(得分:1)
self.tabBarController = [[UITabBarController alloc] init];
[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"YOURIMAGE.png"]];
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
答案 5 :(得分:0)
我在UITabBar
API中没有看到任何影响该分隔符的内容,但如果分隔符在UITabBar(UIView子类)中,我希望你可以插入一个新的像素高UIView在它之上。您必须抓住要在其中显示的图像的一部分并在新视图中绘制它。而且我不确定UITabBar是否会以某种方式阻止添加子视图或阻止子视图位于顶部。但那是我开始的地方。
答案 6 :(得分:0)
在AppDelegate.m
didFinishLaunchingWithOptions:
方法
if ([[[UIDevice currentDevice] systemVersion] floatValue]>=7.0)
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];
答案 7 :(得分:0)
这对我有用
UIImage* tabBarBackground = [UIImage new];
if(!OSVersionIsAtLeastiOS7())
{
tabBarBackground = [UIImage imageNamed:@"whitebg"];
}
[[UITabBar appearance] setShadowImage:tabBarBackground];
[[UITabBar appearance] setBackgroundImage:tabBarBackground];
答案 8 :(得分:0)
[_tabBarController.tabBar setBackgroundImage:[UIImage imageNamed:@"tabtarsprnt"]]; //your custom image
[self.tabBarController.tabBar setClipsToBounds:YES];
此代码也解决了我的问题
答案 9 :(得分:0)
在我的情况下,我还需要设置一个不同的阴影,最后在设置自定义阴影时唯一有用的是在标签栏上方添加单点高UIView 1点:
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];
答案 10 :(得分:0)
试试这个, **目标-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()
这是shadowImage的Apple文档。
@available(iOS 6.0, *)
open var shadowImage: UIImage?
默认为零。当非零时,显示自定义阴影图像而不是 默认阴影图像。要显示自定义阴影,请自定义 必须使用-setBackgroundImage设置背景图像:(如果是 使用默认背景图像,默认阴影图像将是 使用)。
答案 11 :(得分:-1)
现在您可以使用此行:
self.tabBarController.tabBar.barStyle = UIBarStyleBlack;