TABAnimation骨架屏框架闪白问题

TABAnimation骨架屏框架闪白问题

在使用TABAnimation骨架屏框架时,UITableView首次加载会出现除第一行以外都闪白得情况,稍纵即逝,断点断不到,图层也找不到白色的这一层。在普通白色主题色App中很难被发现,但在深色项目中尤其明显。

通过对TABAnimation库的排查以及项目框架的排查,抽丝剥茧,终于找到了问题原因:
在iOS14开始,系统新增了两个单元格配置:

  • 内容配置 UIContentConfiguration
    可以帮助您操作单元格的内容,如图片、文本、辅助文本、布局指标和行为。
  • 背景配置 UIBackgroundConfiguration
    可以帮助操作背景颜色、视觉效果、笔画、插入和角半径。所有单元格会继承默认的后台配置。

在项目图层中,背景配置体现为列表首次加载前cell中多出了一个_UISystemBackgroundView视图,该视图包含一个白色的子视图。使用TabAnimation时,会将这个视图的加载过程暴露出来。

WechatIMG1.png

我们要做的就是找到他,并把子视图背景色改掉即可。

将以下代码添加到didFinishLaunchingWithOptions中
Objective-C

    if (@available(iOS 14.0, *)) {
        UIBackgroundConfiguration *bgconfig = [UIBackgroundConfiguration listPlainCellConfiguration];
        bgconfig.backgroundColor = UIColor.clearColor;
        [UITableViewCell appearance].backgroundConfiguration = bgconfig;
    }

Swift

    if #available(iOS 14.0, *) {
        var bgConfig = UIBackgroundConfiguration.listPlainCell()
        bgConfig.backgroundColor = UIColor.clear
        UITableViewHeaderFooterView.appearance().backgroundConfiguration = bgConfig
        //For cell use: UITableViewCell.appearance().backgroundConfiguration = bgConfig
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容