我正在制作一个简单的表视图。
我面临的问题是,当我上下滚动时,另一个单元格出现了。
看下面的2张图像。
在这里,您会看到该单元格出现在顶部,并且计数器不为零,如第一个单元格一样。您还可以看到该颜色具有较深的颜色。
代码如下:
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 200
}
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) //as! ArrangementCell
let card = CardHighlight(frame: CGRect(x: cell.bounds.origin.x + 30, y: cell.bounds.origin.y + 10, width: cell.bounds.width - 60 , height: (cell.bounds.width + 40)/2.6282051282))
card.backgroundColor = UIColor(red: 0, green: 94/255, blue: 112/255, alpha: 0.1)
card.title = String(Counter)
card.hasParallax = true
card.shadowOpacity = 0.6
card.shadowBlur = 7
card.cardRadius = 7
Counter = Counter + 1
let cardContentVC = storyboard!.instantiateViewController(withIdentifier: "CardContent") as! DetaljertArrangement
card.shouldPresent(cardContentVC, from: self, fullscreen: false)
cell.contentView.addSubview(card)
return cell
}
如何预防此问题?
答案 0 :(得分:1)
因为细胞将其出队
cell.contentView.addSubview(card)
保持在每个滚动中添加新标签,因此您需要创建一个原型单元格/ xib,其中标签被标记为出口,并更改其文本
答案 1 :(得分:0)
您的问题似乎是此行cell.contentView.addSubview(card)
。您要在旧视图上添加新的内容视图,而不删除旧视图。您可以尝试制作一个已经添加了CardHighlight的UITavleViewCell子类,而只需更新其标题和VC。
DequeueCellAtIndexPath回收旧单元(最初仅创建新单元),因此在滚动时,您将使用已设置的旧单元。