并非所有单元格都显示在 CollectionViewController Swift 中

Posted

技术标签:

【中文标题】并非所有单元格都显示在 CollectionViewController Swift 中【英文标题】:Not all cells are shown in a CollectionViewController Swift 【发布时间】:2018-03-06 12:05:16 【问题描述】:

我目前正在开发一个元素周期表并显示我正在使用集合视图的表。元素周期表有 118 个元素,我试图将它们全部显示在同一页面中,但是当我在模拟器上运行应用程序时,只显示 77 个单元格。

这是我在 Swift 文件中使用的代码:source code

我想知道如何在同一屏幕上显示所有单元格。我在网上搜索,但找不到任何东西。

【问题讨论】:

我看到了你的代码......我请求你不要那样做...... 为什么要为单元格设置框架? 试试参考github.com/robertmryan/PeriodicTable/tree/master/PeriodicTable 【参考方案1】:

步骤: 1.首先数一下你的元素周期表中的项目或元素的数量,即将整个框架划分为网格,看看有多少小方块。

    现在为您的元素创建一个模态,例如,对于第一项 Hydrogen,它进入 [Datamodel] 数组 0 索引,而对于下一个 16 数组元素,它的空对象因为没有元素.. 以这种方式创建你的模态

    现在创建您的collectionview单元格并使用您的模态填充数据,其中数据为空白对象显示黑色图像,对于那些有元素的,分别显示

    现在对于每个元素的大小,有一个 UICollectionViewDelegateFlowLayout 方法

     func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize 
    
        let width = self.collectionview.frame.size.width/18 as there are 18 columns
        return CGSize(width: width, height: width)
    
    
    

这样,您的所有单元格都将在水平视图中可见.. 但在横向模式下,所有单元格可能都不可见,例如具有 58、59 的元素

所以对于你需要做的每个元素的高度

let height = height/9 as there are 9 rows

但是这样,你。可能不会得到方形单元格

【讨论】:

以上是关于并非所有单元格都显示在 CollectionViewController Swift 中的主要内容,如果未能解决你的问题,请参考以下文章

当并非所有单元格都包含该分隔符时,在分隔符之前删除所有内容

使用显示/减少按钮展开/折叠表格视图单元格

UICollectionView 单元格未对齐

披露指示器移动单元格子视图

我想在所有 iphone 型号的 uicollectionview 中的一行中显示两个单元格

在表格视图中的所有单元格都已加载后,重新加载表格视图单元格内的集合视图