我正在开发一个 iPhone 应用程序,该应用程序应该以UICollectionView
. 图像保存在 Parse 云中,我使用 的子类PFQueryCollectionViewController
进行查询并显示图像。
点击MKMapView
标注会触发显示CollectionViewController
. 第一次呈现时,图像不会出现在单元格中CollectionViewController
。但是,如果我返回MapView
,然后返回CollectionViewController
,图像会出现在单元格中。
如何让图像在第一次出现时PFQueryCollectionViewController
出现?
这是我的代码:
class PhotoGridCollectionViewController: PFQueryCollectionViewController {
override func viewDidAppear(animated: Bool) {
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: UICollectionViewDataSource
override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
//#warning Incomplete method implementation -- Return the number of sections
return 1
}
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
//#warning Incomplete method implementation -- Return the number of items in the section
return self.objects.count
}
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFCollectionViewCell? {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("venuePhotoThumb", forIndexPath: indexPath) as! PhotoGridCollectionViewCell
if let pfObject = object {
cell.imageView.file = pfObject["imageFile"] as? PFFile
cell.imageView.loadInBackground({ (img, err) -> Void in
println("Download complete")
})
}
return cell
}
}
由于我使用的是故事板,因此我通过parseClass
在属性检查器中设置自定义类来传递它:
如您所见,我使用的是异步加载图像的loadInBackground
方法PFImageView
,我认为这个问题可能是由于返回单元格后正在下载的图像引起的,但我没有任何其他想法。有谁知道为什么在第一次呈现视图时图像没有出现?