IOS UITabbar设置通明背景的坑(_UIBarBackground透明化)

今天重构项目的时候把TabbarController重新整理了下,设置tabbar通明背景的时候一直设置不成功,于是使用XCode看了下图层排查原因:

在网上查找了下关于这个_UIBarBackground,找到下边这个回答:


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

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

       obj.hidden = YES;

   }

}];


但是打印tabBar.subviews的时候并不会打印出来_UIBarBackground。

后来又找一个别的解决方案:


if (@available(iOS 13.0, *)) {

        [self.tabBar.standardAppearance configureWithTransparentBackground];

        //standardAppearance的关键词是copy,直接调用无效果。

        UITabBarAppearance *apperance = self.tabBar.standardAppearance

        [apperance configureWithTransparentBackground];

        // Reset background and shadow properties to be transparent.重置背景和阴影属性为透明。

        self.tabBar.standardAppearance = apperance;

    } else {

        UIImage *image = [UIImage imageWithColor:[UIColor clearColor]]; 

        //生成一个纯色图片的自定义方法,不多介绍

        self.tabBar.backgroundImage = image;

        self.tabBar.shadowImage = image;

        self.tabBar.translucent = YES;

        //没有IOS12的机子,暂时没有测试是否有效。

    }


设置之后的图层:


你可能感兴趣的:(IOS UITabbar设置通明背景的坑(_UIBarBackground透明化))