【发布时间】:2019-05-17 04:23:16
【问题描述】:
因此,对于每条推文,Twitter 都会计算其展示次数,即它出现在多少屏幕上。无需交互即可计算展示次数,只需显示推文即可。
如果 Twitter 提要是 UITableView,而每条推文都是 UITableViewCell,如何实现?
最初,我尝试在tableView(_:cellForRowAt:) 方法中添加印象,如下所示:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "TweetCell", for: indexPath) as! TweetCell
let tweet = feed[indexPath.row]
cell.configure(with: tweet)
addImpression(for: tweet) // adding impression here...
return cell
}
但是当用户滚动过去或 UITableView 重新加载时,每个单元格可能会多次调用此方法,这将导致添加多个展示而不是仅添加一个展示。
我想可能使这个工作是一个代码块,每个单元只运行一次。有这种事吗?
谢谢。
【问题讨论】:
标签: ios swift uitableview twitter tableview