簡體   English   中英

如何使用Swift和parse.com在表格視圖中顯示圖像

[英]How to display an Image in a tableview using Swift and parse.com

我正在嘗試從Parse查詢圖像到單元格,然后在單擊該單元格時查詢視圖控制器。 在最近使用Swift進行更新之前,我確實已經完成了這項工作,現在我不確定出什么問題了。

import UIKit
import Parse
import ParseUI
import Bolts

class ProductTableViewController: PFQueryTableViewController {

    // Initialise the PFQueryTable tableview
    override init(style: UITableViewStyle, className: String!) {
        super.init(style: style, className: className)
    }

    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)!

        // Configure the PFQueryTableView
        self.parseClassName = "Products"
        self.textKey = "productName"
        self.imageKey =  "productImage"
        self.pullToRefreshEnabled = true
        self.paginationEnabled = false

    }



    // Define the query that will provide the data for the table view
    override func queryForTable() -> PFQuery {
        let query = PFQuery(className: "Products")
        query.orderByDescending("createdAt")
        return query
    }


    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell {

        var cell = tableView.dequeueReusableCellWithIdentifier("Cell") as! Customcells!
        if cell == nil {
            cell = Customcells(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
        }

        // Extract values from the PFObject to display in the table cell
        if let ProductName = object?["ProductName"] as? String {
            cell.ProductName.text = ProductName
        }


        // Display product image
      let initialThumbnail = UIImage(named: "question2")
        cell.productImage.image? = initialThumbnail!
        if let thumbnail = object?["ProductImage"] as? PFFile {
            cell.productImage.file = thumbnail
            cell.productImage.loadInBackground()
        }



        return cell
    }



    override func viewDidLoad() {
        super.viewDidLoad()



    }

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



    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

        // Get the new view controller using [segue destinationViewController].
        let productView = segue.destinationViewController as! ProductViewController

        // Pass the selected object to the destination view controller.
        if let indexPath = self.tableView.indexPathForSelectedRow {
            let row = Int(indexPath.row)
            productView.currentObject = (objects?[row] as! PFObject)



        }
    }

}

這是我的一個具有tableView的視圖控制器的代碼。 圖像沒有顯示,但其他所有內容都出現了。 產品名稱顯示在正確的位置,當單擊單元格時,將帶您到視圖控制器,其中顯示了產品說明,產品名稱等。 唯一不顯示的是圖像。 任何想法可能是什么原因造成的?

嘗試使用這個:

 let profileImage:PFFile = Places[indexPath.row]["Image"] as! PFFile
 profileImage.getDataInBackgroundWithBlock {
            (imageData: NSData?, error: NSError?)-> Void in
            if (error == nil) {
                cell.pic.setImage(UIImage(data: imageData!)!, forState: UIControlState.Normal)
            }
        }

找出我需要做的事

 override func tableView(tableView: UITableView, cellForRowAtIndexPath      indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! Customcells


    let imageFile = object?.objectForKey("ProductImage") as? PFFile
    cell.productImage.image = UIImage(named: "question2")
    cell.productImage.file = imageFile
    cell.productImage.loadInBackground()


    return cell

}

如果您使用Parse作為后端,則這是Xcode 7.1的更新后的快速代碼,可用於將圖像拖入表視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM