去掉系统的UITabBar上的黑线

I don't want to be someone that you're settling for. I don't want to be someone that anyone settles for.
我不想要你将就,我也不想成为将就的对象。——《西雅图不眠夜》(Sleepless in Seattle)
图片.png

(图片来源:视觉中国)

作为一名屌丝程序员,有道词典是必备神器,每日一句更是不容做过。

iOS 9 和 iOS 10 tabBar上的黑线是有区别的,黑线位置是不一样的,红框中的view就是黑线:

1、iOS 9如图:

WechatIMG1439.jpeg

2、iOS 10以上

WechatIMG1440.jpeg

3、注意事项

在iOS 9上获取黑线的时候要区分_UITabBarBackgroundView,它也是属于UIImageView的子类。

4、代码:


#define kIOS_VERSION   ([[[UIDevice currentDevice] systemVersion] floatValue])
#define IOS8_OR_LATER  (kIOS_VERSION >= 8.0)
#define IOS9_OR_LATER  (kIOS_VERSION >= 9.0)
#define IOS10_OR_LATER (kIOS_VERSION >= 10.0)

 if (IOS10_OR_LATER) {
        [self.tabBar.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            if ([obj isKindOfClass:NSClassFromString(@"_UIBarBackground")]) {
                [obj.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj1, NSUInteger idx1, BOOL * _Nonnull stop1) {
                    if ([obj1 isKindOfClass:[UIImageView class]]) {
                        obj1.hidden = YES;
                        *stop1 = YES;
                    }
                }];
                *stop = YES;
            }
        }];
    } else {
        [self.tabBar.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            if ([obj isKindOfClass:[UIImageView class]] && ![obj isKindOfClass:NSClassFromString(@"_UITabBarBackgroundView")]) {
                obj.hidden = YES;
                *stop = YES;
            }
        }];
    }

Done.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我的个人博客 http://yedingding.com 会更新 Teahour.fm 的最新音频文本,欢迎关注。...
    叶玎玎阅读 5,728评论 0 2
  • 一提起儿童美育,我就想起遍布中国城乡那些松松垮垮毫无精气神的学生校服。同时也想起一则新闻,一个女孩因为舍不...
    大龙看世界阅读 3,401评论 0 2
  • 抬起手,却不知道写什么。这应该是每个人想写一些东西,但是最后又放弃的重要原因。大抵是因为没有素材,无话可说,无事可...
    乐果果阅读 3,240评论 0 1
  • 6月29日计划 早晨6:00起床,6:20跑步。7:45送女儿上学,8:00吃早餐,9:00到刘星公司取宣言册,9...
    zengkai1198阅读 1,126评论 0 0

友情链接更多精彩内容