ios - Collectionview 和分页

标签 ios swift

我想使用收藏 View 来显示用户的 Instagram 照片,例如 Tinder。我放置了一个 Collection View 并启用分页。但我不知道如何每页显示 6 张照片。我怎样才能做到这一点?

这就是我想要的:

首页:

enter image description here

第二页:

enter image description here

我使用所有间距设置为零,因为针对不同的屏幕尺寸设置 Storyboard 问题的间距。

我的收藏 View 的设置和结果:

enter image description here

结果:

enter image description here

所以我想每页显示 6 张照片。如何实现这一目标?

最佳答案

要显示所需的具体单元格数量,您必须计算单元格的大小。像这样的事情:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    let numberOfRows = 2
    let numberOfColumns = 3

    let height = collectionView.frame.size.height / numberOfRows
    let width = collectionView.frame.size.width / numberOfColumns

    let cellSize = CGSize(width: width, height: height)

    return cellSize
}

由于您的布局配置是静态的,您只需计算一次即可使其更快:

class MyVC: UIViewController {

    private let cellSize: CGSize = CGSize(width: collectionView.frame.width/numberOfColumns, height: collectionView.frame.height/numberOfRows) // or create a computed property

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

此代码未经测试,也许您必须添加一些填充,但您明白了。另一种选择是实现您自己的 UICollectionViewLayout 子类

关于ios - Collectionview 和分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45572063/

相关文章:

ios - 使用 VoiceOver 访问带有大单元格的嵌套 Collection View

cocoa-touch - 在 iOS 中嵌入 Youtube 视频

ios - GPUImage 获取图像列的总和

ios - 通过 App Delegate 从 UINavigationController 呈现 UIViewController

ios - PickerView - 如何根据分段控件选择返回 2 个不同的数组

ios - 如何从起点和滚动点找到终点坐标

ios - 导航栏项目作为选项卡栏项目

ios - 访问单例中的非可选属性时出现无法解释的崩溃

ios - 使用快速步进器乘以我的原始数字而不是以前的数字

ios - 错误 : index beyond bounds