метод.

я есть пользовательская ячейка «NewsCell». Он содержит мой пользовательский вид 'ImageMosaicView' (это просто подкласс UIView). Я использую это, чтобы показать фотографии как в посте в Facebook. Я просто передаю URL-адреса изображений в экземпляр ImageMosaicView, и он загружает его и показывает.

У меня есть проблема. Когда я быстро прокручиваю свой tableView, тогда изображения из предыдущей ячейки на мгновение появляются в новой ячейке, пока загружаются новые изображения. Но я понятия не имею, как они там отображаются, потому что я предоставил изображения по умолчанию.Вот пример

Как я могу избежать этого?

// 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()
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос