gpt4 book ai didi

xcode - setImageWithUrl 从 Parse.com 到 UICollectionView

转载 作者:行者123 更新时间:2023-11-28 08:57:52 27 4
gpt4 key购买 nike

我正在使用框架:UIImageView+AFNetworking - 此处代码:http://pastebin.com/cyzSaxsh

这是我从 Parse.com 查询的方式:

func queryFromParse(){
var query = PFQuery(className: "currentUploads")
query.orderByDescending("createdAt")
query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]?, error:NSError?) -> Void in
if error == nil
{
if let newObjects = objects as? [PFObject] {

for oneobject in newObjects {
let text = oneobject["imageText"] as! String
let username = oneobject["username"] as! String
let time = oneobject.createdAt!

if let userImage = oneobject["imageFile"] as? PFFile {
let userImage = oneobject["imageFile"] as! PFFile

let imageURL = userImage.url // <- Bruker nå userImage.URL, henter ikke bildefilen med en gang

var OneBigObject = Details(username: username, text: text, CreatedAt: time, image: imageURL!)

self.arrayOfDetails.append(OneBigObject)

dispatch_async(dispatch_get_main_queue()) { self.collectionView.reloadData() }
}
}
}
}
}
}

这是我的“cellForItemAtIndexPath”:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
{
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! CollectionViewCell

cell.layer.borderWidth = 0.5
cell.layer.cornerRadius = 3
var myColor : UIColor = UIColor( red: 0.0, green: 0.0, blue:0.0, alpha: 0.15 )
cell.layer.borderColor = myColor.CGColor

var post = self.arrayOfDetails[indexPath.row]
cell.currentUserLabel.text = post.username
cell.imageText.text = post.text

cell.uploadedTimeLabel.text = post.CreatedAt.timeAgo

dispatch_async(dispatch_get_main_queue()) { cell.ImageView.setImageWithUrl(NSURL(string: post.image)!, placeHolderImage: UIImage(named: "Placeholder")) }

return cell
}

我有一个问题。加载图像需要 10-20 秒,而我在 Parse 中只有大约 10 张图像。这是 5 秒后的样子: enter image description here

这里有什么建议吗?

最佳答案

替换这些代码:

dispatch_async(dispatch_get_main_queue()) { self.collectionView.reloadData() }
}

cellForRowAtIndexPath 方法中使用这些代码:

 let request: NSURLRequest = NSURLRequest(URL: imgURL)
let mainQueue = NSOperationQueue.mainQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: mainQueue, completionHandler: { (response, data, error) -> Void in
if error == nil {
let image = UIImage(data: data)
// Update the cell
dispatch_async(dispatch_get_main_queue(), {
if let cellToUpdate = tableView.cellForRowAtIndexPath(indexPath) {
cellToUpdate.imageView?.image = image
}
})
}
else {
println("Error: \(error.localizedDescription)")
}
})

关于xcode - setImageWithUrl 从 Parse.com 到 UICollectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32580615/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com