如何在iOS10中删除TabBar上的行

问题描述 投票:1回答:5

创建一个自定义TabBar的项目,它的工作完美在iOS高达9但在iOS 10我有一个问题TabBar线在TabBar上面。

enter image description here

尝试以下代码:

UITabBarController *Tabbar;

[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];

它在iOS9的工作不在iOS10。我试着把它应用到TabBar

1)尝试:

   [Tabbar.tabBar setShadowImage:[[UIImage alloc] init]];
   Tabbar.tabBar.layer.borderWidth = 0.0f;
   Tabbar.tabBar.layer.borderColor =[UIColor clearColor].CGColor;
   Tabbar.tabBar.layer.backgroundColor=[UIColor clearColor].CGColor;
   Tabbar.tabBar.tintColor=CLEAR_COLOR;
   Tabbar.tabBar.barTintColor=CLEAR_COLOR;

2)尝试:

    CALayer * superLayer = [UITabBar appearance].layer;
    CALayer * layer = [CALayer layer];
    layer.bounds = CGRectMake (0.0f, 0.0f, 62.0f, 56.0f);
    layer.contents = (id) [UIImage imageNamed: @"tras_tabbg-min"].CGImage;
    layer.anchorPoint = CGPointMake (0.5f, 1.0f);
    layer.position = CGPointMake (superLayer.bounds.size.width / 2.0f, superLayer.bounds.size.height);
    layer.zPosition = 1.0f;
    [[UITabBar appearance].layer addSublayer: layer];

3)尝试:(崩溃应用程序)

[self.tabBar setValue:@(YES) forKeyPath:@"_hidesShadow"];

* 4)尝试:*

[[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"yourImageName"]];
[UITabBar appearance].layer.borderWidth = 0.0f;
[UITabBar appearance].clipsToBounds = true;

输出:

enter image description here

我也希望边境听到。这是一张背景图片。

注意:我想在tabbar上显示背景图像,它不是零或清晰

如果有任何解决方案,请回复。

ios objective-c uitabbarcontroller ios10 uitabbar
5个回答
1
投票

if> = iOS 10

tabBar.barStyle = UIBarStyle.black

否则<iOS 10:

tabBar.shadowImage = UIImage()
tabBar.backgroundImage = UIImage()

0
投票

在视图中,自定义标签栏的加载方法使用此代码。(swift 3)将此转换为目标c

 class CustomTabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.tabBar.backgroundImage = UIImage()
        self.tabBar.shadowImage = UIImage()

    }

}

0
投票

此行来自您的自定义图像或颜色

self.tabBar.backgroundImage = nil
self.tabBar.shadowImage = nil

并检查tabBar后面的视图


0
投票

我认为这会奏效。适用于iOS 9.试试吧。

[[UITabBar appearance] setBackgroundImage:[[UIImage alloc] init]]; 
[[UITabBar appearance] setShadowImage:[[UIImage alloc] init]];

如果上述解决方案不起作用。试试这个。此代码在iOS 10和10.1中经过测试,工作正常。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    [[UITabBar appearance] setBackgroundImage:[UIImage imageNamed:@"yourImageName"]];
    [UITabBar appearance].layer.borderWidth = 0.0f;
    [UITabBar appearance].clipsToBounds = true;
    return YES;
}

0
投票

创建自定义UITabBar类并覆盖layoutSubviews方法,如下所示:

-(void)layoutSubviews{
    [super layoutSubviews];
    for (UIView *view in self.subviews){
        if([NSStringFromClass([view class]) isEqualToString:@"_UIBarBackground"]){
            if(view.subviews.count>1){
                [view.subviews[1] removeFromSuperview];
            }
        }
    }
}

请享用!

© www.soinside.com 2019 - 2024. All rights reserved.