iOS 修改或去除tabBar顶部横线

本文介绍了在iOS项目中如何修改tabBar顶部横线的颜色为#EDEDED,以及如何完全去除横线。通过代码实现,达到自定义tabBar背景色和线条颜色的效果。

项目中遇到需要修改tabBar顶部横线的颜色,去网上找了好多  效果都不太理想  于是总结了一下 方便日后查阅


需要实现的效果是tabBar背景色为#FFFFFF  顶部横线颜色为#EDEDED 代码如下

[self changeLineOfTabbarColor]; //修改tabBar顶部横线颜色
    [self changeTabbarColor]; //修改tabBar背景色

- (void)changeLineOfTabbarColor {
    CGRect rect = CGRectMake(0.0f, 0.0f, kDeviceWidth, 0.5);
    UIGraphicsBeginImageContextWithOptions(rect.size,NO, 0);
    CGContextRef context =UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [UIColor colorWithHexString:@"#EDEDED"].CGColor);
    CGContextFillRect(context, rect);
    UIImage *image =UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    [self.tabBarViewController.tabBar setShadowImage:image];
    [self.tabBarViewController.tabBar setBackgroundImage:[UIImage new]];
}

- (void)changeTabbarColor {
    CGRect frame;
    UIView *tabBarView = [[UIView alloc] init];
    tabBarView.backgroundColor = [UIColor colorWithHexString:@"#FFFFFF"];
    if (DEVICE_IS_IPHONE_X) {
        frame = CGRectMake(0, 0, kDeviceWidth, 83);
    }else {
        frame = self.tabBarViewController.tabBar.bounds;
    }
    tabBarView.frame = frame;
    [[UITabBar appearance] insertSubview:tabBarView atIndex:0];
    
}
由于iPhone X的tabBar的高度为83 所以需要根据机型判断进行相应处理

#define DEVICE_IS_IPHONE_X ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)

完成之后的效果如下:




去除tabBar顶部横线的方法

self.tabBarViewController.tabBar.clipsToBounds = YES;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值