用年和月填充 UICollectionViewCell

Posted

技术标签:

【中文标题】用年和月填充 UICollectionViewCell【英文标题】:Populate UICollectionViewCell with Years and Months 【发布时间】:2020-04-10 14:11:37 【问题描述】:

我需要用 20002050 的年份列表填充 UICollectionView 的单元格。

每个单元格必须包含一年中的一个月,直到第十二个月,然后从新的一年重新开始。

例如 2000 年的 12 个单元格,2001 年的另外 12 个单元格等...

使用 swift 5 的最佳方式是什么?

【问题讨论】:

嗨@kAiN,你为什么需要这样做?布局一定要这样吗?您找不到任何 POD 来为您执行此操作吗? @DanielArantesLoverde 嗨...是的,我需要这种类型的横向日历布局 看看enumerateDates(startingAfter:matching:options:using:) of Calendar 【参考方案1】:

您可以将细胞计数设置为 (2050-2000)*12

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int 
        return (2050-2000)*12

然后定义起始年份变量和月份名称数组

var year:Int = 2000
let months:[String] = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]

现在您可以将数据添加到 collectionview 单元格

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell 
    //define cell

    cell.lblYear.text = "\(year+indexPath.row.quotientAndRemainder(dividingBy: 12).quotient)"
    cell.lblMonth.text = months[indexPath.row % 12]



    return cell

【讨论】:

不错的答案?? 哦!感谢您的建议 当我在单元格之间滚动时遇到了一些问题.. 似乎这些年没有保持逻辑线程......当我滚动 collectionView 时,它失去了年的计算。 . 如果我只滚动 4 个单元格然后我回到第一年,那一年已经改变了 我一直有同样的问题:( 我认为问题出在if indexPath.item % 12 == 0 startYear += 1

以上是关于用年和月填充 UICollectionViewCell的主要内容,如果未能解决你的问题,请参考以下文章

在 MongoDB 中按年和月聚合查询

按日和月分组原则

MYSQL按日,周和月分组,带有php时间戳[重复]

如何将月销售和月采购表合并到一个表中?

java中,利用Calendar对象怎么得到天数,和月数,(天数和月数单独拿出来的 不像:yyyy-MM-dd)

从日、年和月获取时间戳[重复]