在渲染UICollectionView的单元格时,未考虑截面

时间:2016-05-12 13:22:23

标签: ios swift uicollectionview uiedgeinsets

我有一个包含两个部分的UICollectionView。 我从故事板中给出了left = 5和right = 5的分段插图。 我对两个部分的单元格使用相同的.xib。 我在sizeForItemAtIndexPath

中输入单元格的大小
    func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {

        let itemWidth = self.collectionViewTrending.bounds.size.width - 10
        if(indexPath.section == 0) {

                return CGSizeMake(itemWidth , 200)

        } else {

            let product = self.products.objectAtIndex(indexPath.row) as! Product
            let imageHeight = CGFloat(product.imageHeight)
            return CGSizeMake(itemWidth, imageHeight * 0.81)
        }



   }

问题在于:

对于第0节,单元格居中并且尊重分段插入。

对于第1部分,左侧部分插入被尊重但右侧不是,并且第1部分的所有单元格的右边缘都接触到collectionView的右边缘。

为什么会发生这种情况,我该如何解决?

1 个答案:

答案 0 :(得分:0)

部分插入适用于整个部分:

左侧插图会影响该部分左边缘与该部分中FIRST单元格左边缘之间的空间。

右侧插入会影响该部分的最后一个单元格的右边缘与该部分的右边缘之间的空间。

换句话说,您所看到的行为可能是因为第0部分只有一个单元格,第1部分只有多个单元格。

您可能想要的是单元格之间的空间,以创建每个单元格周围边框的外观。

要执行此操作,请在故事板中设置集合视图的“最小间距/单元格”属性。或者在collectionView minimumInteritemSpacingForSectionAtIndex委托方法中动态设置它。