【问题标题】:Swift - Cell in tableview appear over another cellSwift - 表格视图中的单元格出现在另一个单元格上
【发布时间】:2018-12-30 15:59:56
【问题描述】:

我正在制作一个简单的表格视图。

我面临的问题是,当我向下和向上滚动时,单元格上方出现了另一个单元格。

请看下面的 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
 }

我怎样才能避免这个问题?

【问题讨论】:

  • 单元被重复使用,您正在添加 always 一个新的子视图.... 使用 custom 单元并在界面中添加视图(一次)生成器。

标签: ios swift uitableview tableview


【解决方案1】:

因为单元格出队了

cell.contentView.addSubview(card)

每次滚动都会添加一个新标签,因此您需要创建一个原型单元格/xib,并将标签作为插座并更改其文本

【讨论】:

  • 感谢您的快速回答!这听起来合乎逻辑!我会试试看。
【解决方案2】:

看来您的问题是cell.contentView.addSubview(card) 这一行。您将在旧内容视图上添加新内容视图,而不会删除旧内容视图。您可以尝试创建一个已添加 CardHighlight 的 UITavleViewCell 子类,然后更新它的标题和 VC。

DequeueCellAtIndexPath 回收旧单元格(它最初只创建新单元格),因此当您滚动时,您正在使用已设置的旧单元格。

【讨论】:

    猜你喜欢
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多