如何将collectionview单元格彼此对齐?

时间:2018-06-23 02:02:42

标签: swift

我正在为我的应用程序创建一个配置文件页面屏幕。屏幕显示所有用户的最新帖子。我使用情节提要在UICollectionView中创建了两个UICollectionViewCell,一个用于显示您的个人资料信息,另一个用于显示您的帖子。请参见我在情节提要中如何设计它:https://i.stack.imgur.com/6TzwK.png

运行应用程序时,得到以下结果:https://i.stack.imgur.com/XmvY3.jpg

但是,我希望像下面这样放置单元格:https://i.stack.imgur.com/nWQ14.jpg

如何强制单元格对齐,使其看起来如上图所示?谢谢!

1 个答案:

答案 0 :(得分:0)

找到了问题的答案。为您的班级实施UICollectionViewDelegateFlowLayout委托。然后,在类中包含以下方法:

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

    let width = UIScreen.main.bounds.width // get the width of the screen
    let scale = (width / 3) // get the width (and height) of each cell

    if indexPath.row != 0 { // check to see if the cell is the profile header
        return CGSize(width: scale, height: scale) // if not, then return the cell size
    }

    return CGSize(width: width, height: ((238/414) * width)) // if it is the profile header, return the size for it.
}

确保UICollectionView的故事板设置的“最小间距”为0,0。然后,这些单元将对齐到网格视图中。