Использование Almofireimage для установки изображения в пользовательской ячейке таблицы

Я использую Alamofireimage, чтобы установить изображение на основе удаленного URL на UIImageView в моем обычае UITableViewCell однако результаты таковы: (1) изображения не устанавливаются до тех пор, пока вы не выполните прокрутку, и (2) даже несмотря на то, что я использую StackViews для своей автоматической раскладки, размеры изображений, отображаемых в приложении, сильно различаются. Есть идеи, что я делаю не так?

import UIKit
import Alamofire
import AlamofireImage

class AppsTableViewController: UITableViewController {

    let session = URLSession.shared

    var rekos: [Reko]? {
        didSet {
            DispatchQueue.main.async {
                self.tableView?.reloadData()
            }
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        RekoManager().downloadAndConvertRekos(rekoType: .apps) { (result) in
            print("Reko Count = \(result.count)")
            self.rekos = result
        }


    }



    // MARK: - Table view data source


    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

          guard let count = rekos?.count else {return 0}
        return count 
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
         let cell = tableView.dequeueReusableCell(withIdentifier: "AppCell", for: indexPath) as! AppsTableViewCell

        if let reko = rekos?[indexPath.row] {



            cell.titleLabel.text = reko.title
            cell.descriptionLabel.text = reko.description
            if let imageUrlString = reko.imageUrlString {

                if let imageURL = URL(string: imageUrlString) {

                    //TODO IMPLEMENT SPINNER OVER IMAGE
                    cell.appImageView.af_setImage(withURL: imageURL, placeholderImage: UIImage(named: "placeholder"), filter: nil, progress: nil, progressQueue: DispatchQueue.main, imageTransition: .noTransition, runImageTransitionIfCached: false, completion: { (result) in
                        cell.setNeedsLayout()
                        cell.layoutIfNeeded()
                    })

                }
            }
        }
        return cell
    }


}

0 ответов

Другие вопросы по тегам