Friday, November 6, 2026
HomeiOS Developmentswift - Ios pictures and labels hold loading everty time scrolling

swift – Ios pictures and labels hold loading everty time scrolling

[ad_1]

I am writing a demo to point out consumer’s tweets, it ought to be seem like this:
enter image description here

The query is:
Each time I scroll to the underside after which scroll again, the tweet’s pictures and feedback are reloaded, even the type grew to become mess up. I do know it one thing do with dequeue, I set Photos(which is an array of UIImageView) to [] each time after dequeue, however it isn’t working. I am confused and could not fairly sleep….

Right here is core code of my TableCell(property and Photos set), which give structure:

class WechatMomentListCell: UITableViewCell{
    
    static let identifier = "WechatMomentListCell"
    
    var content material = UILabel()
    var senderAvatar = UIImageView()
    var senderNick = UILabel()
    var pictures = [UIImageView()]
    var feedback = [UILabel()]


  override func layoutSubviews() {
//there's a part of Picture set and feedback
        if pictures.depend != 0 {
            swap pictures.depend{
            case 1:
                contentView.addSubview(pictures[0])
                pictures[0].snp.makeConstraints{ (make) in
                    make.main.equalTo(senderNick.snp.main)
                    make.prime.equalTo(content material.snp.backside)
                    make.width.equalTo(180)
                    make.peak.equalTo(180)
                }
            default:
                for index in 0...pictures.count-1 {
                    contentView.addSubview(pictures[index])
                    pictures[index].snp.makeConstraints{ (make) in
                        make.main.equalTo(senderNick.snp.main).inset(((index-1)%3)*109)
                        make.prime.equalTo(content material.snp.backside).offset(((index-1)/3)*109)
                        make.width.equalTo(90)
                        make.peak.equalTo(90)
                    }
                }
            }
        }
        if feedback.depend != 0, feedback.depend != 1 {
            for index in 1...feedback.count-1 {
                feedback[index].backgroundColor = UIColor.grey
                contentView.addSubview(feedback[index])
                feedback[index].snp.makeConstraints{(make) in
                    make.main.equalTo(senderNick)
                    make.backside.equalToSuperview().inset(index*20)
                    make.width.equalTo(318)
                    make.peak.equalTo(20)
                }
            }
        }
    }

Right here is my ViewController, which give datasource:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let tweetCell = tableView.dequeueReusableCell(withIdentifier: WechatMomentListCell.identifier, for: indexPath) as? WechatMomentListCell else {
            fatalError("there is no such thing as a WechatMomentList")
        }
        
        let tweet = viewModel.tweetList?[indexPath.row]
        for i in tweet?.pictures ?? [] {
            let flagImage = UIImageView()
            flagImage.sd_setImage(with: URL(string: i.url))
            tweetCell.pictures.append(flagImage)
        }

        for i in tweet?.feedback ?? [] {
            let flagComment = UILabel()
            flagComment.textual content = "(i.sender.nick) : (i.content material)"
            tweetCell.feedback.append(flagComment)
        }
        return tweetCell
    }

The Photos GET request has been outline at ViewModel utilizing Alamofire.

If I scroll the display screen, the feedback will load once more and pictures had been mess up like this.

enter image description here

[ad_2]

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments