Swift日历-移动到下周
我正在用swift从开始制作日历 到目前为止,这是结果,我只显示了从今天开始的7天 我添加了一个按钮,将在下周显示。到目前为止,我已经尝试过:Swift日历-移动到下周,swift,uicollectionview,uicollectionviewlayout,Swift,Uicollectionview,Uicollectionviewlayout,我正在用swift从开始制作日历 到目前为止,这是结果,我只显示了从今天开始的7天 我添加了一个按钮,将在下周显示。到目前为止,我已经尝试过: func moveToNextWeek() { self.startDateInWeek = self.startDateInWeek?.dateByAddingDays(days: 7) DispatchQueue.main.async { self.collectionView.performBatchUp
func moveToNextWeek() {
self.startDateInWeek = self.startDateInWeek?.dateByAddingDays(days: 7)
DispatchQueue.main.async {
self.collectionView.performBatchUpdates({
}, completion: { (completed) in
self.collectionView.reloadData()
self.weekFlowLayout?.invalidateLayout()
})
}
}
这只需更改变量startDateInWeek
,当加载的视图被声明为juststartDateInWeek=Date()
(今天的日期)时,该变量就是
然而,当我按下按钮时,又增加了一周,但我必须手动滚动
dateByAddingDays()
是声明为
func dateByAddingDays(days:Int)->Date{
let calendar = Calendar(identifier: .gregorian)
var comp = DateComponents()
comp.day = days
return calendar.date(byAdding: comp, to: self)!
}
Calendar
提供了一种更好的方法来计算下周的开始时间,即使这取决于当前区域设置的第一个工作日设置:
let calendar = Locale.current.calendar
calendar.firstWeekday // Sunday == 1, Saturday == 7
let weekDayComponent = DateComponents(weekday:calendar.firstWeekday)
let startOfNextWeek = calendar.nextDate(after: Date(), matching: weekDayComponent, matchingPolicy: .nextTime)
Calendar
提供了一种更好的方法来计算下周的开始时间,即使这取决于当前区域设置的第一个工作日设置:
let calendar = Locale.current.calendar
calendar.firstWeekday // Sunday == 1, Saturday == 7
let weekDayComponent = DateComponents(weekday:calendar.firstWeekday)
let startOfNextWeek = calendar.nextDate(after: Date(), matching: weekDayComponent, matchingPolicy: .nextTime)
谢谢,瓦迪安。这是一个更好的方法。但我不认为这能解决我的问题,不是吗?谢谢瓦迪安。这是一个更好的方法。我不认为这能解决我的问题,不是吗?