在多个 UIView 上添加 Facebook Shimmer

2023-12-09

我正在尝试在具有多个 UIView 的 UICollectionViewCell 上添加 Facebook Shimmer。

For 一个 UIView,使用下面的代码可以正常工作:

let shimmeringView = FBShimmeringView(frame: imageView.frame)
shimmeringView.contentView = imageView
backgroundView.addSubview(shimmeringView)
shimmeringView.isShimmering = true

Where backgroundView是我拥有所有子视图的视图,例如imageView, labelView和别的。

当我尝试添加多个视图时,第一个视图获得正确的框架,但其他视图的宽度变为零。我在里面添加这段代码collectionView(_:cellForItemAt:).

let shimmeringView = FBShimmeringView(frame: imageView.frame)
shimmeringView.contentView = imageView
backgroundView.addSubview(shimmeringView)
shimmeringView.isShimmering = true

let shimmeringView = FBShimmeringView(frame: labelView.frame)
shimmeringView.contentView = labelView
backgroundView.addSubview(shimmeringView)
shimmeringView.isShimmering = true

谁能告诉我这是否是为多个实施 Facebook Shimmer 的正确方法UIViews或者我哪里做错了?


我相信有很多方法可以实现FBShimmeringView,这是一个偏好问题。所以就我而言,我更喜欢最简单的方法(根据我的说法)。

我在我的tableViewCell当然有多种观点,例如imageView and labels,就像你的一样,我有多个UIView灰色,放置在我的单元格中每个视图的顶部。

那么我只有一个实例FBShimmeringView添加到我的单元格。

以下是有关我练习使用的更多详细信息FBShimmeringView.

*请注意我使用SnapKit以编程方式布局我的视图。

  1. 我的牢房里有一个叫做isLoading像这样,它决定是否应该显示灰色视图或现在显示。如果显示,当然打开闪烁:

    public var serviceIsLoading: Bool = false {
        didSet {
            _ = self.view_Placeholders.map { $0.isHidden = !self.serviceIsLoading }
            self.view_Shimmering.isHidden = !self.serviceIsLoading
            self.view_Shimmering.isShimmering = self.serviceIsLoading
        }
    } 
    
  2. 然后,在将所有子视图添加到单元格后,我向单元格添加一个白色视图:

    // Place the FBShimmeringView
    // Try to add a dummy view
    let dummyView = UIView()
    dummyView.backgroundColor = .white
    self.addSubview(dummyView)
    dummyView.snp.makeConstraints { (make) in
        make.edges.equalToSuperview()
    }
    
  3. 将 ShimerringView 添加到单元格中:

    self.addSubview(self.view_Shimmering)
    self.view_Shimmering.snp.makeConstraints { (make) in
        make.height.width.equalToSuperview()
        make.center.equalToSuperview()
    }
    
  4. 最后,将dummyView设为cell的contentView:

    self.view_Shimmering.contentView = dummyView
    

我的屏幕看起来像这样。另请记住禁用您的交互tableView.

当它闪闪发光时,这对我来说看起来很酷,只是一个闪闪发光的视图。

enter image description here

希望能帮助到你!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在多个 UIView 上添加 Facebook Shimmer 的相关文章

随机推荐

  • 如何将存储为bigint的Java时间戳转换为Presto中的时间戳?

    几天来我一直没有找到这个 如果我的 hive 表中数据的 avro 模式是 type record name messages namespace com company messages fields name timeStamp typ
  • ZF2 表单中的按钮内容

    如何编辑 ZF2 表单的 Button 元素的按钮内容 我可以设置一个标签 但我想在其中插入一些 html 代码 this gt add array type gt Button name gt submit options gt arra
  • 使用 async 时,bcrypt.hash 函数返回 undefined,但与 .then 一起工作正常

    这是异步代码 返回undefined userService register username password gt return bcrypt hash password saltRounds async err hash gt co
  • 在 Windows 窗体中以编程方式添加新的用户控件

    嘿 首先我想指出 我知道这里还有关于这个主题的其他几个问题 我什至以前自己也做过这件事 我在这里问是因为我不知道我的问题是什么 这是我尝试显示新用户控件的代码 private void ValidationLabel Click objec
  • 使用 jQuery 更改下拉列表的选定值

    我有一个包含已知值的下拉列表 我想做的是将下拉列表设置为我知道存在的特定值jQuery 使用常规JavaScript 我会做类似的事情 ddl document getElementById ID of element goes here
  • 我们可以将 Laravel 项目作为库集成到 CodeIgniter 中吗?

    我想通过集成一些用 laravel 编写的代码来增加 CodeIgniter 项目的功能 我该如何接近 我可以通过 CodeIgniter 库包含代码吗 如果是的话怎么办 我只想将控制器和 ORM 包含到 CI 中 Laravel 代码是一
  • R 中 apply 中的 equal() 行为

    这很奇怪 apply matrix c 1 NA 2 3 NA NA 2 4 ncol 2 1 function x identical x 1 x 2 1 FALSE TRUE TRUE FALSE apply data frame a
  • 在这种情况下,iPhone 上的“发布”是什么意思?

    我想问一个关于 iPhone 应用程序的愚蠢问题 我是iPhone应用程序的绿色 我在Apple网站上阅读了以下代码 MyViewController aViewController MyViewController alloc initW
  • 设计模式 - 理解外观模式

    我是设计模式的新手 正在尝试了解它们通常的样子 现在我正在尝试理解外观模式 我觉得外观模式是一个相当广泛的概念 所以我想知道我的第二个图是否会被视为外观模板的一部分 我知道一个典型的外观模式基本上是这样的 A 级是外观 但是如果我们有一个更
  • 密钥不得包含 . pymongo 中的错误

    我试图通过 pymongo 获取 serverStatus 命令的输出 然后将其插入到 mongodb 集合中 这是字典 u metrics u getLastError u wtime u num 0 u totalMillis 0 u
  • PHP Constant() 不适用于名称空间?

    以下不起作用 use application components auditor AuditLevel public function actionAudit data unserialize POST data message data
  • 如何更新由另一个组合框触发的组合框中的值?

    我的表单中有 2 个组合框 我希望在组合框 2 中的列表更新时更改组合框 1 中的选定值 例如 ComboBox1 包含移动公司的名称 ComboBox2 包含该公司的所有手机列表 假设您有一个将手机型号与其制造商关联起来的字典 Dicti
  • 流星:云中

    我正在尝试上传 Lepozepo cloudinary 的照片 这是我的服务器和客户端配置 server Cloudinary config cloud name api key api secret client cloudinary c
  • UIViewController 的背景到分组表视图颜色

    在 UITableView 分组样式中 表格视图的背景有点像浅灰色的纹理颜色 如何获取该值以便将 UIViewController 的整个背景设置为该颜色 如果您正在为 iPhone 和 iPod touch 进 行开发 UIColor定义
  • 搜索文本文件并插入行

    我想要做的是 以下面的文本为例 在文本文件中搜索字符串 Text2 然后在 Text 2 后两行插入一行 插入文本 文本 2 可以位于文本文件中的任何行 但我知道它会在文本文件中出现一次 所以这是原始文件 Text1 Text2 Text3
  • 从存档导出 ipa 时 Xcode 9 崩溃

    我在 Xcode 9 中为任何项目创建了一个存档 然后我尝试创建一个 ipa 文件 开发文件或临时文件 我首先尝试导出存档 然后我选择 开发 或 临时分发 Xcode 9 崩溃 我什至在应用程序的 info plist 中添加了 编译位码
  • 向函数发送 stderr/stdout 消息并捕获退出信号

    我正在处理错误处理并登录我的 bash 脚本 下面我提供了一个简化的代码片段来举例说明用例 我想在我的脚本中实现以下目标 陷阱退出信号应触发下面代码中的 onexit 函数 stderr 和 stdout 应发送到 log 函数 该函数将确
  • R 中的嵌套 if-else 循环

    我有一个名为 crimes 的数据框 其中包含一个 pre rate 列 表示实施特定法律之前的犯罪率 我想使用嵌套的 if else 循环将每个费率放入 rate category 列中 我有以下代码 crimes rate catego
  • 为什么c++使用memset(addr,0,sizeof(T))来构造一个对象?标准或编译器错误?

    这个问题和我的另一篇文章有 关 为什么 allocate shared 和 make shared 这么慢 在这里我可以更清楚地描述这个问题 考虑下面的代码 struct A char data 0x10000 class C public
  • 在多个 UIView 上添加 Facebook Shimmer

    我正在尝试在具有多个 UIView 的 UICollectionViewCell 上添加 Facebook Shimmer For 一个 UIView 使用下面的代码可以正常工作 let shimmeringView FBShimmerin