关于ios10中自定义tabbar中黑线无法去除的问题

在[校谱]项目的开发过程中,遇到了自定义tabbar,按照常规的自定义tabbar的开发来创建tabbar。 在不同版本系统的适配中,发现tabbar上面这条黑线在iOS9及其以下的系统中并不存在,但在iOS系统中这条线神奇的出现了。

       用之前在项目中常用的移除tabbar的subViews的方法并不管用,

        [self.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

            if ([obj isKindOfClass:NSClassFromString(@”UIImageView”)]) {

                if (obj.frame.size.height < 1) {

                    [obj removeFromSuperview];

                }

            }

        }]

在分析项目图层结构后发现这条黑线的类并不是之前版本中的UIImageView 而是存在于UIBarBackground,属于这个分类。

       [self.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {

            if ([obj isKindOfClass:NSClassFromString(@”_UIBarBackground”)]) {

                [obj.subviews[1] removeFromSuperview];

            }

        }];

完整代码:

ok问题解决 效果如下。