我试图在我的应用中实现Pinterest布局,我尝试了raywenderlich的教程。我的问题如何实现到UICollectionView cellForItemAt和heightForPhotoAtIndexPath
这里是我的代码:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "GaleryCollection", for: indexPath) as! GaleryCollectionViewCell
let imgGalery = self.galery![indexPath.row]
if imgGalery.photo != nil {
cell.imageGalery.af_setImage(withURL: URL(string: imgGalery.photo!)!)
}
return cell
}
答案 0 :(得分:0)
我在我的项目中使用了相同的教程。我正在使用此委托功能。您需要导入AVFoundation。如果您从数据库中提取图像,最好在数据库中设置图像的高度和宽度,以便像以下一样轻松调用它们。
func collectionView(collectionView: UICollectionView, heightForPhotoAt indexPath: IndexPath, with width: CGFloat) -> CGFloat {
let postHeight = posts[indexPath.item].postImageHeight
let postWidth = posts[indexPath.item].postImageWidth
let postSize = CGSize(width: postWidth, height: postHeight)
let boundingRect = CGRect(x: 0, y: 0, width: width, height: CGFloat(MAXFLOAT))
let rect = AVMakeRect(aspectRatio: postSize, insideRect: boundingRect)
return rect.size.height
}
我在添加对象时遇到了一个问题。 :/