swift 如何在 JTAppleCalendar 中显示当前周
How to show Current Week in JTAppleCalendar in swift
对于日历,我在我的项目中使用 JTAppleCalendar pod
并且我能够在日历中显示当前月份,但我需要在日历中显示当前周但是如何
对于日历中显示的当前月份,我使用以下代码
extension ViewController: JTAppleCalendarViewDataSource {
func configureCalendar(_ calendar: JTAppleCalendarView) -> ConfigurationParameters {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy MM dd"
let startDate = formatter.date(from: "2010 01 01")!
let endDate = formatter.date(from: "2050 01 01")!
return ConfigurationParameters(startDate: startDate, endDate: endDate)
}
}
extension ViewController: JTAppleCalendarViewDelegate {
func calendar(_ calendar: JTAppleCalendarView, cellForItemAt date: Date, cellState: CellState, indexPath: IndexPath) -> JTAppleCell {
let cell = calendar.dequeueReusableJTAppleCell(withReuseIdentifier: "dateCell", for: indexPath) as! DateCell
self.calendar(calendar, willDisplay: cell, forItemAt: date, cellState: cellState, indexPath: indexPath)
if testCalendar.isDateInToday(date) {
cell.dateLabel.textColor = UIColor.blue
cell.dateLabel.font = UIFont.boldSystemFont(ofSize: 13.0)
} else {
testCalendar.isDateInToday(date) == false
}
return cell
}
func calendar(_ calendar: JTAppleCalendarView, headerViewForDateRange range: (start: Date, end: Date), at indexPath: IndexPath) -> JTAppleCollectionReusableView {
let header = calendar.dequeueReusableJTAppleSupplementaryView(withReuseIdentifier: "DateHeader", for: indexPath) as! DateHeader
formatter.dateFormat = "MMM yyyy"
header.monthTitle.text = formatter.string(from: range.start)
return header
}
}
0/p:
但我需要在日历中显示当前周,如何?,请帮忙
以下 cocoapod 符合您的要求:
FSCalender
请尝试在 pod 文件中使用以下 pod:
use_frameworks!
target '<Your Target Name>' do
pod 'FSCalendar'
end
Return '1' for numberOfRows
并像这样修改 configureCalendar
:
extension ViewController: JTAppleCalendarViewDataSource {
func configureCalendar(_ calendar: JTAppleCalendarView) -> ConfigurationParameters {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy MM dd"
let startDate = formatter.date(from: "2010 01 01")!
let endDate = formatter.date(from: "2050 01 01")!
return ConfigurationParameters(startDate: startDate,
endDate: endDate,
numberOfRows: 1,
generateInDates: .forFirstMonthOnly,
generateOutDates: .off,
hasStrictBoundaries: false)
}
}
对于日历,我在我的项目中使用 JTAppleCalendar pod
并且我能够在日历中显示当前月份,但我需要在日历中显示当前周但是如何
对于日历中显示的当前月份,我使用以下代码
extension ViewController: JTAppleCalendarViewDataSource {
func configureCalendar(_ calendar: JTAppleCalendarView) -> ConfigurationParameters {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy MM dd"
let startDate = formatter.date(from: "2010 01 01")!
let endDate = formatter.date(from: "2050 01 01")!
return ConfigurationParameters(startDate: startDate, endDate: endDate)
}
}
extension ViewController: JTAppleCalendarViewDelegate {
func calendar(_ calendar: JTAppleCalendarView, cellForItemAt date: Date, cellState: CellState, indexPath: IndexPath) -> JTAppleCell {
let cell = calendar.dequeueReusableJTAppleCell(withReuseIdentifier: "dateCell", for: indexPath) as! DateCell
self.calendar(calendar, willDisplay: cell, forItemAt: date, cellState: cellState, indexPath: indexPath)
if testCalendar.isDateInToday(date) {
cell.dateLabel.textColor = UIColor.blue
cell.dateLabel.font = UIFont.boldSystemFont(ofSize: 13.0)
} else {
testCalendar.isDateInToday(date) == false
}
return cell
}
func calendar(_ calendar: JTAppleCalendarView, headerViewForDateRange range: (start: Date, end: Date), at indexPath: IndexPath) -> JTAppleCollectionReusableView {
let header = calendar.dequeueReusableJTAppleSupplementaryView(withReuseIdentifier: "DateHeader", for: indexPath) as! DateHeader
formatter.dateFormat = "MMM yyyy"
header.monthTitle.text = formatter.string(from: range.start)
return header
}
}
0/p:
但我需要在日历中显示当前周,如何?,请帮忙
以下 cocoapod 符合您的要求: FSCalender
请尝试在 pod 文件中使用以下 pod:
use_frameworks!
target '<Your Target Name>' do
pod 'FSCalendar'
end
Return '1' for numberOfRows
并像这样修改 configureCalendar
:
extension ViewController: JTAppleCalendarViewDataSource {
func configureCalendar(_ calendar: JTAppleCalendarView) -> ConfigurationParameters {
let formatter = DateFormatter()
formatter.dateFormat = "yyyy MM dd"
let startDate = formatter.date(from: "2010 01 01")!
let endDate = formatter.date(from: "2050 01 01")!
return ConfigurationParameters(startDate: startDate,
endDate: endDate,
numberOfRows: 1,
generateInDates: .forFirstMonthOnly,
generateOutDates: .off,
hasStrictBoundaries: false)
}
}