1

UIImageView我正在使用 Alamofireimage在我的自定义中基于远程 url 设置图像,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
    }


}
4

0 回答 0