如何创建pinterest布局?

时间:2018-01-26 10:50:52

标签: ios swift swift3 uicollectionview

我试图在我的应用中实现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
}

1 个答案:

答案 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
}

我在添加对象时遇到了一个问题。 :/