用年和月填充 UICollectionViewCell
Posted
技术标签:
【中文标题】用年和月填充 UICollectionViewCell【英文标题】:Populate UICollectionViewCell with Years and Months 【发布时间】:2020-04-10 14:11:37 【问题描述】:我需要用 2000 到 2050 的年份列表填充 UICollectionView
的单元格。
每个单元格必须包含一年中的一个月,直到第十二个月,然后从新的一年重新开始。
例如 2000 年的 12 个单元格,2001 年的另外 12 个单元格等...
使用 swift 5 的最佳方式是什么?
【问题讨论】:
嗨@kAiN,你为什么需要这样做?布局一定要这样吗?您找不到任何 POD 来为您执行此操作吗? @DanielArantesLoverde 嗨...是的,我需要这种类型的横向日历布局 看看enumerateDates(startingAfter:matching:options:using:) ofCalendar
。
【参考方案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的主要内容,如果未能解决你的问题,请参考以下文章