在CollectionView中设置从周一到周六的工作日日期,可以通过以下步骤实现:
以下是一个示例代码:
import UIKit
class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {
let collectionView = UICollectionView(frame: CGRect.zero, collectionViewLayout: UICollectionViewFlowLayout())
let dateFormatter = DateFormatter()
var workdays: [Date] = []
override func viewDidLoad() {
super.viewDidLoad()
// 设置日期格式
dateFormatter.dateFormat = "yyyy-MM-dd"
// 设置CollectionView的数据源和代理
collectionView.dataSource = self
collectionView.delegate = self
// 注册CollectionView的单元格
collectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "Cell")
// 添加CollectionView到视图中
view.addSubview(collectionView)
// 设置CollectionView的约束
collectionView.translatesAutoresizingMaskIntoConstraints = false
collectionView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
collectionView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
collectionView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
collectionView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
// 获取从周一到周六的工作日日期
let calendar = Calendar.current
let today = Date()
let weekday = calendar.component(.weekday, from: today)
let daysToAdd = 2 - weekday // 2表示周一
let monday = calendar.date(byAdding: .day, value: daysToAdd, to: today)!
for i in 0..<6 {
let date = calendar.date(byAdding: .day, value: i, to: monday)!
workdays.append(date)
}
// 刷新CollectionView
collectionView.reloadData()
}
// MARK: - UICollectionViewDataSource
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return workdays.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath)
let date = workdays[indexPath.item]
let dateString = dateFormatter.string(from: date)
// 在单元格中显示日期
let label = UILabel(frame: cell.contentView.bounds)
label.textAlignment = .center
label.text = dateString
cell.contentView.addSubview(label)
return cell
}
}
这是一个简单的示例,通过设置数据源和代理方法,以及使用日期格式化和判断星期几来实现在CollectionView中显示从周一到周六的工作日日期。你可以根据实际需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云