首页 > 解决方案 > UICollectionView 使用 UILabel 加载 Emoji 内存增长且未回收

问题描述

我尝试建立一个这样的列表

在此处输入图像描述

这是我的手机密码

class EmojiCell: UICollectionViewCell {

override init(frame: CGRect) {
    super.init(frame: frame)
    makeUI()
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

override func prepareForReuse() {
    super.prepareForReuse()
    emojiLabel.text = nil
}

lazy var emojiLabel: UILabel = {
    let view = UILabel()
    view.font = UIFont(name: "Apple color emoji", size: 30)
    view.textAlignment = .center
    return view
}()

private func makeUI() {
    contentView.addSubview(emojiLabel)
    emojiLabel.translatesAutoresizingMaskIntoConstraints = false
    emojiLabel.topAnchor.constraint(equalTo: contentView.topAnchor).isActive = true
    emojiLabel.bottomAnchor.constraint(equalTo: contentView.bottomAnchor).isActive = true
    emojiLabel.leadingAnchor.constraint(equalTo: contentView.leadingAnchor).isActive = true
    emojiLabel.trailingAnchor.constraint(equalTo: contentView.trailingAnchor).isActive = true
}

func setEmoji(emoji: String) {
    emojiLabel.text = emoji
}
}

当我滚动collectionview时,内存不断增长

在此处输入图像描述

关闭页面内存不会回收它

我在 CFString 中发现了内存泄漏

在此处输入图像描述

有人可以帮我解决这个问题吗?

谢谢!

标签: iosswiftuicollectionviewuikituicollectionviewcell

解决方案


推荐阅读