アプリの性質は、ユーザーが tableView を下にスクロールすると、すべての行に UIImages を表示する UITableView です。VIPER アーキテクチャを壊さずにイメージをセルにロードするにはどうすればよいですか?
--VC code--
func cellForRowAtIndexPath...... {
var cell = dequeueCellWithIdentifier.....
//Method 1
cell.image = outputInteracter.loadImage("someHttpImageLink")
//Method 2. - using a completion block
outputInteracter.loadImage(anImage -> {
cell.image = anImage
}
}
プレゼンターが関与しておらず、VIP の境界間で構造が渡されないため、上記の方法はどちらも VIP を壊すようです。
VIPを使用して(メインスレッドをブロックせずに)ダウンロードされた画像を取得するための非同期呼び出しを行うために、TableViewのUIImagesを取得することをどのように提案しますか? 呼び出しパターンを次のようにすることはできますが、ステップ 4 で混乱します。
- VC --> interacterOutput.loadImage("someLink")
- Interacter --> 画像を取得する作業を行い、UIimage をプレゼンターに送信します
- プレゼンター --> UIImage は既に VC の正しい形式になっているため、情報を VC に戻します。
- VC --> セルがイメージの準備ができていることを認識できるように、コードをどのように設定すればよいですか? tableView全体をリロードしたくない
どんな助けでも大歓迎です。