2017-05-06 21 views
15

この質問は、tableviewがデータを取り出してそのセルを表示する直前を指しています。テーブルビューのセルが表示される前にプレースホルダを表示する方法は?

最近、いくつかのアプリでは、入力されたセルが表示される前に、テーブルビューの概要画像が表示されていました。

これはどのように行われますか?

セル全体のテーブルビューに使用されるプレースホルダイメージ、またはセルがデキューされるまで各セルにレンダリングされるプレースホルダタイプのイメージですか?ここで

するFacebookからの例とfiverrアプリ fiverr Facebook

+0

各セルにプレースホルダビューがあり、実際のデータが来ると非表示になることがあります。 –

+1

これをチェックしてくださいhttps://github.com/samhann/Loader.swift/tree/master/Example/FBAnimatedView @グレイブリー –

+1

https://github.com/gonzalonunez/スケルトン –

答えて

5

あるセルの内容があなたの細胞がどのように見えるかのプレースホルダ画像のいくつかの種類がありUIImageViewある別のUITableViewCellクラスを作成します。バックグラウンドリクエストが行われている間に、UITableViewにこれらのセルを挿入します。要求が完了したら、すべてのプレースホルダセルを削除してから、すべての「実際の」セルを挿入するテーブル更新を開始します。

+0

ヘイスコット。 DataSourceを介してどのように私は両者を区別しますか? –

+1

別々のクラスであれば、クラスを調べて調べることができます。あるいは、2つのクラスが異なる応答をして区別するためのメソッドを含むプロトコルを実装することもできます。しかし、実際には、データソースはどのデータが読み込まれていて、どのデータが読み込まれていないかを知っていて、その行がロードされているかどうかに応じて適切なセルクラスを提供できます。 –

2

私によれば、backgroundViewをtableViewに追加する方がよいでしょう。

書き込み:

検索中/フェッチデータ:

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

データが受信されると、そうリロード前:

tableview.backroundView = nil 
4

サーバーに要求してスタートがプレースホルダセルとネットワークを表示するとき応答が受信されると、データコンテナセルが表示されます。アクティビティインジケータと同じプレースホルダセルを使用します。

FaceBookは、プレースホルダーセルにsimmer効果を使用しています。

関連する問題