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的机子,暂时没有测试是否有效。

    }


设置之后的图层:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容