Reutilizando celdas en UITableView

Tengo mi celda personalizada 'NewsCell'. Contiene mi vista personalizada 'ImageMosaicView' (que es solo una subclase de UIView). Lo uso para mostrar fotos como en publicaciones en Facebook. Simplemente paso las URL de las imágenes a la instancia de ImageMosaicView, y la carga y muestra.

Tengo un problema. Cuando desplazo mi tableView rápido, las imágenes de la celda anterior aparecen en la celda nueva por un momento, mientras se cargan nuevas imágenes. Pero no tengo idea de cómo aparecen allí, porque proporcioné imágenes predeterminadas. @Aquí hay un ejempl

¿Cómo puedo evitar esto?

// ImageMosaicView.swift

class ImageMosaicView: UIView {
    @IBOutlet var imageViews: [UIImageView]!

    var urlStrings: [String] = [] {
    didSet {
        for imageView in imageViews {
            if let url = URL(string: urlStrings[i]) {
                imageView.loadImage(url: url)
            }
        }
    }

    // MARK: - Initialization

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        let _ = loadViewFromNib()
    }

    // MARK: - Methods

    func loadViewFromNib() -> UIView {
        let bundle = Bundle.init(for: type(of: self))
        let nib = UINib(nibName: "ImageMosaicView", bundle: bundle)
        let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView
        view.frame = bounds
        view.autoresizingMask = [
            UIViewAutoresizing.flexibleWidth,
            UIViewAutoresizing.flexibleHeight
        ]
        addSubview(view)
        return view
    }
}

// How I provide urls for images:

// NewsViewController.swift. 'tableView(cellForRow:, indexPath:)

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let news = newsCollection[indexPath.row]
        let cell = tableView.dequeueReusableCell(withIdentifier: "NewsCell", for: indexPath) as! NewsCell
        //...
        cell.imageMosaicView.urlStrings = news.imageUrlsCollection
        //...
        return cell
    } else {
        return UITableViewCell()
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta