该应用程序的本质是一个 UITableView,当用户向下滚动 tableView 时,它会在每一行显示 UIImages。我应该如何在不破坏 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 的边界之间没有传递任何结构
您如何建议让 TableView 的 UIImages 进行异步调用以使用 VIP 下载图像(不阻塞主线程)?我可以使调用模式像这样,但我对第 4 步感到困惑:
- VC --> interacterOutput.loadImage("someLink")
- Interacter --> 完成获取图像的工作,并将 UIimage 发送给演示者
- Presenter --> UIImage 已经是正确的 VC 格式,所以将信息传递回 VC
- VC --> 我应该如何最好地设置代码,以便单元知道其图像已准备好?我不想重新加载整个 tableView
任何帮助将不胜感激。