смешивание данных в табличном представлении, как мне избежать этого? быстрый - PullRequest
0 голосов
/ 08 июля 2019

У меня есть некоторые проблемы, у меня есть табличное представление с пользовательской ячейкой, ячейка имеет изображение, изображение загружается из Интернета, когда данные загружаются в первый раз, все в порядке, но если быстро прокрутить экран, изображения будут смешиваться. это мой код

 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
        let cell:FlinkerTableViewCell = tableView.dequeueReusableCell(withIdentifier: "flinkerCell") as! FlinkerTableViewCell
        cell.imgeCell.image = nil
        let row = indexPath.row
        let flinkerAux: Flinker = flinkers[row]
        if let stringURL = flinkerAux.image{
            if stringURL != "" {
                DispatchQueue.main.async {
                    cell.imgeCell.downloadedFrom(link: stringURL)
                    cell.imgeCell.contentMode = .scaleAspectFill
                }
                cell.imgeCell.setNeedsDisplay()
                cell.lblTitle.text = flinkerAux.fullName
                cell.lblSubtitle.text = flinkerAux.phone
            }else{
                cell.imgeCell.image = UIImage(named: "user_placeholder")
                cell.lblTitle.text = flinkerAux.fullName
                cell.lblSubtitle.text = flinkerAux.phone
            }
        }else{
            cell.imgeCell.image = UIImage(named: "user_placeholder")
            cell.lblTitle.text = flinkerAux.fullName
            cell.lblSubtitle.text = flinkerAux.phone
        }
        cell.imgeCell.layer.cornerRadius = 20
        cell.imgeCell?.clipsToBounds = true
        cell.selectionStyle = .none
        return cell
    }

Я использую swift 4.2, я пытался с DispathQueue загрузить изображения, но когда в табличном представлении есть так много изображений, проблема возвращается. как мне поступить?

1 Ответ

0 голосов
/ 08 июля 2019

Это широко известная проблема. Я уверен, что вы можете найти много с Google

Самый простой вариант здесь - использовать любую библиотеку для загрузки изображений, например AlamofireImage, Nuke, Kingfisher, SDWebImage

UITableViewCell проблема асинхронной загрузки изображений - Swift

...