UICollectionView单元格大小调整

时间:2016-06-09 05:07:51

标签: ios swift uicollectionview

enter image description here

右列图片被切断。例如,右边的粉红色狮子应该基本对称,但显然不是。这是我配置imageCell的方式。

@angular/router-deprecated

这就是我返回单元格大小的方式。

func configureCellWithImage(image: Image){
    let iV = self.imageView
    iV.setImageWithURL(image.thumbURL)
    if(image.aspectRatio < 1.62){
        iV.contentMode = UIViewContentMode.ScaleAspectFit
    }else{
        iV.contentMode = UIViewContentMode.ScaleAspectFill
    }

}

帮助表示感谢。谢谢。

编辑:

我不知道为什么UIView的宽度为201.它应该是159.我如何访问这个视图?我应该只有CollectionView,imageCell和UIImageView。

enter image description here

3 个答案:

答案 0 :(得分:0)

尝试在故事板中的集合视图的“section insets”中增加right属性的值

Scale section of Collection View

答案 1 :(得分:0)

您在sizeForItemAtIndexPath方法中使用了ScreenSize,这是错误的,您将使用collectionView宽度大小,使用我的下面的代码,

    func collectionView(collectionView : UICollectionView,layout collectionViewLayout:UICollectionViewLayout,sizeForItemAtIndexPath indexPath:NSIndexPath) -> CGSize
        {
            return CGSize(width: (self.collectionView!.frame.width/2)-5, height: ((self.collectionView!.frame.width/2) * 1.62) - 1)
        }

    func collectionView(collectionView: UICollectionView,
        layout collectionViewLayout: UICollectionViewLayout,
        insetForSectionAtIndex section: Int) -> UIEdgeInsets {
            return UIEdgeInsetsMake(0, 0, 0, 0)
    }

    func collectionView(collectionView: UICollectionView,
        layout collectionViewLayout: UICollectionViewLayout,
        minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat {
            return 0.0
    }

    func collectionView(collectionView: UICollectionView,
        layout collectionViewLayout: UICollectionViewLayout,
        minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat {
            return 0.0
    }

希望它有所帮助。

答案 2 :(得分:0)

所以我在搜索了更多内容后发现了这篇文章。

Autoresizing issue of UICollectionViewCell contentView's frame in Storyboard prototype cell (Xcode 6, iOS 8 SDK) happens when running on iOS 7 only

解决方案是

self.contentView.frame = self.bounds;