UICollectionViewCell imageView 不滚动不加载

UICollectionViewCell imageView doesn't load without scrolling

我的 collectionView 中有一些垂直方向的单元格。
每个单元格的左侧部分都有一个图像,并且该图像正确加载。
但是在我为图像添加了一个圆角右上角后,屏幕打开时不会自动加载。
这是在 cellForItemAt

中调用的方法
func setAvatarImage(imageName: String) {
        self.addSubview(avatarImageView)
        layoutIfNeeded()
        avatarImageView.layer.roundCorners(corners: [.topRight], radius: UIDevice.current.userInterfaceIdiom == .pad ? 85 : 40)
        avatarImageView.contentMode = .scaleAspectFit
        avatarImageView.image = UIImage(named: imageName)
        avatarImageView.snp.makeConstraints { (make) in
            make.height.equalToSuperview()
            make.width.equalToSuperview().multipliedBy(0.5)
            make.left.equalToSuperview()
        }
    }

这里还有 roundCorners 方法,CALayer 扩展,它在我的应用程序中的每个元素上都能完美运行。同样在这里,它工作得很好,但是如果不在 collectionView 中上下滚动,图像就不会加载:

func roundCorners(corners: UIRectCorner, radius: CGFloat, borderWidth: CGFloat = 0, borderColor: UIColor = .clear) {
        let maskPath = UIBezierPath(
            roundedRect: bounds,
            byRoundingCorners: corners,
            cornerRadii: CGSize(width: radius, height: radius)
        )
        
        let shape = CAShapeLayer()
        shape.path = maskPath.cgPath
        
        mask = shape

        let borderLayer = CAShapeLayer()
        borderLayer.path = maskPath.cgPath
        borderLayer.lineWidth = borderWidth
        borderLayer.strokeColor = borderColor.cgColor
        borderLayer.fillColor = UIColor.clear.cgColor
        borderLayer.frame = self.bounds
        addSublayer(borderLayer)
    }

通过添加解决:

layoutIfNeeded()