2017-05-06 114 views
15

这个问题是在tableview获取其数据并显示其单元格之前引用的。如何在tableview单元格显示之前显示占位符?

我已经看到了一些应用程序最近显示的tableview细胞的粗线条式形象,为短暂的时刻得到显示填充细胞前。

这是如何完成的?

使用占位符图像为整个的tableview或呈现针对每个小区占位符类型图像,直到电池被出列?

下面是从Facebook的例子和fiverr应用 fiverr Facebook

+0

可能是每个单元格的占位符视图看起来像线条,并且在实际数据出现时隐藏...... –

+1

检查此https://github.com/samhann/Loader.swift/tree/master/Example/FBAnimatedView @ grabury –

+1

https://github.com/gonzalonunez/Skeleton –

回答

5

创建一个单独的UITableViewCell类,其中单元的内容是UIImageView有某种你的细胞看起来就像图像占位符的。当您的背景请求正在制作时,使用这些单元填充UITableView。请求完成后,启动一个表格更新,在其中删除所有占位符单元格,然后插入所有“真实”单元格。

+0

嘿斯科特。我如何通过DataSource在两者之间进行切分? –

+1

如果它们是单独的类,则可以检查该类以找出......或让这两个类实现一个协议,该协议包含响应方式不同的方法并允许您区分它们。实际上,您的数据源应该知道哪些数据已被加载,哪些没有,并且可以简单地提供适当的单元类,具体取决于该行是否已被加载。 –

2

根据我的意见,最好将backgroundView添加到tableView中。

写:

,而搜索/读取数据:

if results.count == 0{ 
    tableview.backroundView = emptyBlurView 
    } 

一旦接收到数据,以便重装前:

tableview.backroundView = nil 
4

在启动时请求在服务器上显示的地方保持室和网络收到的响应显示数据容器单元。使用与活动指示符相同的占位符单元格。

FaceBook上正在使用的占位符细胞simmer效果。