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
    }

你可能感兴趣的:(TABAnimation骨架屏框架闪白问题)