如何在一行中显示两个项目?使用 uicollectionView

How to show two items in one row? with using uicollectionView

我关注了这个视频学习Collection查看(https://www.youtube.com/watch?v=jQ8EUsQZJ5g

我写了这样的代码:

if ( CollectionViewFlowLayout == nil ){
        let numberOfItemsForRow : CGFloat = 2
        let UpDownSpace : CGFloat = 5
        let LeftRightSpace : CGFloat = 5

        //CollectionViewFlowLayout은 delgate 처럼 소재지를 수정하고 꾸밀 수 있는 것이다.
        CollectionViewFlowLayout = UICollectionViewFlowLayout()
        //이건 margin의 크기를 정해주는 것이다.
        CollectionViewFlowLayout?.sectionInset = UIEdgeInsets.zero
        //이건 화면을 수직으로 내릴 것이냐, 수평으로 스크롤 할것이냐를 정해준다.
        CollectionViewFlowLayout?.scrollDirection = .vertical
        //소재지의 위 아래의 간격을 정해준다.
        CollectionViewFlowLayout?.minimumLineSpacing = UpDownSpace
        //같은 줄에 있는 소재지의 오른쪽 왼쪽 사이의 간격을 정해준다.
        CollectionViewFlowLayout?.minimumInteritemSpacing = LeftRightSpace


        let total = (LeftRightSpace * (numberOfItemsForRow - 1))

        let width = (CollectionView.frame.width - total) / numberOfItemsForRow

        let height = width

        //itemsize : 소재지의 크기를 정 할 수 있다
        CollectionViewFlowLayout?.itemSize = CGSize(width: width, height: height)


        CollectionView.setCollectionViewLayout(CollectionViewFlowLayout!, animated: true)


    }

但是当我使用带有iPhone 8的模拟器时,它会报错

其他都不错!没有 iPhone 8

enter image description here

我认为你的 total 应该计算为:

let total = LeftRightSpace * (numberOfItemsForRow + 1),因为你去掉了左间距、右间距和项目间间距。

或尝试将 width 计算为:

let width = (UIScreen.main.bounds.width - total) / numberOfItemsForRow