JTAppleCalendar
JTAppleCalendar copied to clipboard
how to select cells in JTACYearView
(Required) Version Number: iOS 13.3
Description
Is there a way to select cells in JTACYearView through delegate like JTACMonthView? I didn't find any available methods to do this.
Steps To Reproduce
Expected Behavior
Additional Context
I created a hack to resolve this issue for now. No PR since there are a lot of edge cases that my hack would not solve so treat carefully:
In JTACYearViewDelegate.swift, under the JTACYearViewDelegate , add:
func didSelectIndexPath(indexPath: IndexPath)
In JTACCollectionYearViewDelegates.swift, add:
public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
calendarDelegate?.didSelectIndexPath(indexPath: indexPath)
}
and lastly, in your JTACYearViewDelegate implementation:
func didSelectIndexPath(indexPath: IndexPath) {
var month: Int = 0
if indexPath.item < 13 {
month = indexPath.item
} else {
// because year cells are counted as items, we have to remove them from the month count
// i.e. if indexPath.item = 14, we are tapping on january of the second year since Dec = 12, second_year = 13, january = 14
month = (indexPath.item - (indexPath.item / 12)) % 12
}
var year: Int = 0
if indexPath.item < 13 {
year = sDate.year
} else {
let yearsToAdd = Float(indexPath.item / 12).rounded(.up)
year = sDate.year + Int(yearsToAdd)
}
print("selected month: \(month)")
print("selected year: \(year)")
}
Notes:
sDateis thestartDateof your year calendar.- This works when the year start on January.