UICollectionView没有正确对齐单元格(它们之间的大间隙)

时间:2017-01-20 16:27:27

标签: ios swift uicollectionview uicollectionviewcell uicollectionviewlayout

我有UICollectionView根据其数据源中的项目是否是"文件夹"显示两种单元格。或者照片"

UICollectionView填充两种类型的单元格并且少于3个"照片"每行显示一个单元格,单元格不是左对齐,而是尝试填充行的整个空白区域。

预览1:

enter image description here

预览2

enter image description here

然而,当确切的UITableViewCollection仅显示"照片"细胞似乎表现正常:

enter image description here

以下是处理单元格大小和间距的委托方法:

extension DropboxBrowserViewController: UICollectionViewDelegateFlowLayout {

func collectionView(_ collectionView: UICollectionView,
                    layout collectionViewLayout: UICollectionViewLayout,
                    sizeForItemAt indexPath: IndexPath) -> CGSize
{

    let folderTypeCellHeight = CGFloat(64.0)
    let collectionViewWidth = collectionView.bounds.size.width
    let numOfPhotosPerRow = CGFloat(3.0)
    let layout = collectionViewLayout as! UICollectionViewFlowLayout
    let insets = (layout.sectionInset.left, layout.sectionInset.right)

    // Go full width if the cell displayed a folder name
    if let _ = listingsDataSource?.listings[indexPath.row] as? Files.FolderMetadata {
        return CGSize(width: collectionViewWidth, height: folderTypeCellHeight)
    }
    // return size to fit `numOfPhotos` photos per row
    else {

        let cellSpacing = SavePhotosCollectionViewCell.cellSpacing

        let cellSize = (collectionViewWidth - insets.0 - insets.1 - (CGFloat((numOfPhotosPerRow - 1)) * cellSpacing)) / numOfPhotosPerRow
        return CGSize(width: cellSize, height: cellSize)

    }

}

 func collectionView(_ collectionView: UICollectionView,
                    layout collectionViewLayout: UICollectionViewLayout,
                    minimumLineSpacingForSectionAt section: Int) -> CGFloat
{
    return 2.0
}

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

关于为什么会发生这种情况的任何想法?

由于

修改

故事板看起来像这样。我不知道"照片"单元格正在那里的中间显示,如果这与问题有关。

enter image description here

0 个答案:

没有答案