如何在UICollectionView中每行显示3个单元格?

时间:2015-10-15 04:38:05

标签: ios objective-c uicollectionview uicollectionviewlayout

我根据this post使用了自定义流程布局。 这是我的实施:

 def get(self, request):
 voucher_request = Voucher.objects.all()
 context = RequestContext(request, {
 'voucher_request': voucher_request,
 })        
 return self.tenjin_response("billing/voucher.html", context)

这就是我所拥有的:Result 我错过了什么?我遇到过其他一些SO帖子但到目前为止没有运气。

3 个答案:

答案 0 :(得分:8)

//Make use of UICollectionViewDelegateFlowLayout Protocol

class RVC: UICollectionViewController {
//some code
}

extension RVC: UICollectionViewDelegateFlowLayout{

    func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
    {
          var collectionViewSize = collectionView.frame.size
          collectionViewSize.width = collectionViewSize.width/3.0 //Display Three elements in a row.
          collectionViewSize.height = collectionViewSize.height/4.0
          return collectionViewSize
    }

有关详情,请参阅以下链接。

UICollectionView Set number of columns

答案 1 :(得分:0)

itemSpacing =“单元格之间的间距大小。”

itemsInOneLine =“您要在单行中显示的项目数。”

collectionWidth =“您的收藏夹视图的宽度”

let layout:UICollectionViewFlowLayout =  UICollectionViewFlowLayout()   
let width = (collectionWidth) - itemSpacing * CGFloat(itemsInOneLine - 1)
layout.itemSize = CGSize(width:floor(width/CGFloat(itemsInOneLine)),height:width/CGFloat(itemsInOneLine))

答案 2 :(得分:-3)

您不必通过编码来完成。你只需要在xib.as每iPhone 5或5s宽度变为320.并且你想要每行显示3个单元格,所以你必须做320/3并根据你得到的单元格大小的结果。如果对我的回答有任何疑问,请问我。