微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

向下滚动时带有不需要的额外对象的 UITableViewCell

如何解决向下滚动时带有不需要的额外对象的 UITableViewCell

我有一个视图控制器,在 viewdidload 方法中我调用一个函数来进行一些调用以在线检索数据。 检索数据后,我将它们附加到数组中并重新加载表视图

起初,一切看起来都很棒,但是当我向下滚动时,我会看到您在下方看到的内容

extension CastTableViewController : UITableViewDelegate,UITableViewDataSource {
    func conigure_cast_table () {
        castTable.translatesAutoresizingMaskIntoConstraints = false
        castTable.delegate = self
        castTable.dataSource = self
        
        castTable.register(ActorCell.self,forCellReuseIdentifier: ActorCell.cellid)
        view.addSubview(castTable)
        castTable.frame = view.bounds
    }
    
    func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
        return cast.count
    }
    
    func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = castTable.dequeueReusableCell(withIdentifier: ActorCell.cellid,for: indexPath) as! ActorCell
        
        
        let name = cast[indexPath.row].name
        let character_name = cast[indexPath.row].character
        let pic = cast[indexPath.row].picture_path
        
        cell.configure(name: name,charName: character_name,pic_url: pic)
        
        return cell
    }
    
    func tableView(_ tableView: UITableView,heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 100
    }
    
    
}

enter image description here

解决方法

我使用prepareforreuse修复了这个问题

// in the custom cell class
    override func prepareForReuse() {
        super.prepareForReuse()
        
        for subview in stack.arrangedSubviews {
            stack.removeArrangedSubview(subview)
        }
        
        actorPic.image = nil
        realName.banner_title.text = nil
        realName.info.text = nil
        character.banner_title.text = nil
        character.info.text = nil
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。