简体   繁体   English

在TableView单元格中快速显示解析图像

[英]Swift Displaying Parse Image in TableView Cell

I am attempting to display the users image that is saved to parse property "image". 我正在尝试显示保存为解析属性“ image”的用户图像。 I have been able to display my username with no issue, but I can't seem to be able to get my image to appear. 我已经能够显示我的用户名没有问题,但是我似乎无法显示我的图像。 Should I be casting this information as UIImage? 我应该将此信息转换为UIImage吗? Am I correctly calling where the file is stored? 我是否正确调用文件的存储位置?

Here is my code: 这是我的代码:

import UIKit

class SearchUsersRegistrationViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {    

    var userArray : NSMutableArray = []    

    @IBOutlet var tableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        tableView.delegate = self
        tableView.dataSource = self

        loadParseData()

        var user = PFUser.currentUser()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    func loadParseData() {

        var query : PFQuery = PFUser.query()

        query.findObjectsInBackgroundWithBlock {
            (objects:[AnyObject]!, error:NSError!) -> Void in

            if error == nil {                    
                if let objects = objects {

                    println("\(objects.count) users are listed")    
                    for object in objects {                            
                        self.userArray.addObject(object)
                    }
                    self.tableView.reloadData()
                }
            } else {
                println("There is an error")
            }
        }
    }



    let textCellIdentifier = "Cell"

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {

        return 1

    }

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.userArray.count
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier(textCellIdentifier, forIndexPath: indexPath) as! SearchUsersRegistrationTableViewCell

        let row = indexPath.row            
        var individualUser = userArray[row] as! PFUser
        var username = individualUser.username as String

        var profilePicture = individualUser["image"] as? UIImage            
        cell.userImage.image = profilePicture            
        cell.usernameLabel.text = username

        return cell
    }

    @IBAction func finishAddingUsers(sender: AnyObject) {
        self.performSegueWithIdentifier("finishAddingUsers", sender: self)            
    }       
}

The photos are saved in a PFFile and not as a UIImage.. 照片保存在PFFile中,而不是UIImage。

What makes your code the following: 是什么使您的代码如下:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier(textCellIdentifier, forIndexPath: indexPath) as! SearchUsersRegistrationTableViewCell

        let row = indexPath.row            
        var individualUser = userArray[row] as! PFUser
        var username = individualUser.username as String

        var pfimage = individualUser["image"] as! PFFile

        pfimage.getDataInBackgroundWithBlock({
            (result, error) in
            cell.userImage.image = UIImage(data: result)
        })        
        cell.usernameLabel.text = username

        return cell
    }

See more in the docs 在文档中查看更多

 fileprivate func getImage(withCell cell: UITableViewCell, withURL url: String) { Alamofire.request(url).responseImage { (image) in /* Assign parsed Image */ if let parsedImage = image.data { DispatchQueue.main.async { /* Assign Image */ cell.imageView?.image = UIImage(data: parsedImage) /* Update Cell Content */ cell.setNeedsLayout() cell.layoutIfNeeded() } } } } 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM