swift - 调用 CellForRowAtIndexPath 后上传 TableView
问题描述
这绝对不是最好的方法,所以如果你有更好的答案,我愿意接受建议......我是一名新程序员。我有一个 instagram 类型配置文件,每个单元格显示 3 个按钮... imageView1、imageView2 和 imageView3。它们是按钮,因为当用户单击它们时,我想去另一个 VC 显示图像。所以,我的问题是我想用来自 picPostArray 的图像填充按钮。我在 CellForRowAtIndexPath 中运行 for in 循环。我认为它有效,但是我不确定如何刷新 tableview 以显示新数据。我的其他个人资料数据在 ViewDidAppear 之后全部刷新并且工作正常。谢谢 :)
CellForRowAtIndexPath:
for i in 0..<picPostArray.count/3 {
cell.imageView1.imageView!.image = picPostArray[(i * 3) + 0]
cell.imageView2.imageView!.image = picPostArray[(i * 3) + 1]
cell.imageView3.imageView!.image = picPostArray[(i * 3) + 2]
}
return cell
}
return UITableViewCell()
}
解决方案
如果要重新加载数据,则必须使用tableView.relaodData()
.
顺便说一句,如果您的数组中总是有 3 个图像,那么您可以执行以下操作:
if picPostArray.count == 3 {
cell.imageView1.imageView!.image = picPostArray[0]
cell.imageView2.imageView!.image = picPostArray[1]
cell.imageView3.imageView!.image = picPostArray[2]
}
否则,如果您的数组将是动态的,但是是 3 的倍数。
let row = indexPath.row
cell.imageView1.imageView!.image = picPostArray[row * 3 + 0]
cell.imageView2.imageView!.image = picPostArray[row * 3 + 1]
cell.imageView3.imageView!.image = picPostArray[row * 3 + 2]
推荐阅读
- design-patterns - 用一个真实的例子来理解“观察者模式”
- botframework - 使用任务模块显示 Web 框架有困难 - Microsoft Bot Framework
- sql - Ignition 中的 SQL where 子句(带条件)帮助
- javascript - 如何正确地将其绑定到 Javascript 中的 getter/setter
- java - 我怎样才能只将特定模块部署到我的远程存储库?
- ios - SceneKit 在 Xcode 12 中不会填满屏幕
- macos - 如何将 Electron 应用发布到 Mac 应用商店?
- javascript - JavaScript 确认 OK 按钮不调用服务器端方法
- php - 从特定用户中删除所有用户 wordpress 功能
- laravel - 如何覆盖 Laravel Auth 的哈希方法?