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

时间:2018-03-06 12:05:16

标签: ios swift xcode uicollectionview

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

  3. 现在对于每个元素的大小,有一个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)
    
    }
    
  4. 这样你的所有单元格都可以在水平视图中看到..但是再次所有单元格在横向模式下可能都不可见,就像58,59的元素一样

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

    let height = height/9 as there are 9 rows
    

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