@@ -436,8 +436,8 @@ public final class TimelineView: UIView {
436436
437437 // only non allDay events need their frames to be set
438438 let sortedEvents = self . regularLayoutAttributes. sorted { ( attr1, attr2) -> Bool in
439- let start1 = attr1. descriptor. startDate
440- let start2 = attr2. descriptor. startDate
439+ let start1 = attr1. descriptor. dateInterval . start
440+ let start2 = attr2. descriptor. dateInterval . start
441441 return start1 < start2
442442 }
443443
@@ -451,26 +451,26 @@ public final class TimelineView: UIView {
451451 }
452452
453453 let longestEvent = overlappingEvents. sorted { ( attr1, attr2) -> Bool in
454- var period = attr1. descriptor. datePeriod
455- let period1 = period. upperBound . timeIntervalSince ( period. lowerBound )
456- period = attr2. descriptor. datePeriod
457- let period2 = period. upperBound . timeIntervalSince ( period. lowerBound )
454+ var period = attr1. descriptor. dateInterval
455+ let period1 = period. end . timeIntervalSince ( period. start )
456+ period = attr2. descriptor. dateInterval
457+ let period2 = period. end . timeIntervalSince ( period. start )
458458
459459 return period1 > period2
460460 }
461461 . first!
462462
463463 if style. eventsWillOverlap {
464- guard let earliestEvent = overlappingEvents. first? . descriptor. startDate else { continue }
464+ guard let earliestEvent = overlappingEvents. first? . descriptor. dateInterval . start else { continue }
465465 let dateInterval = getDateInterval ( date: earliestEvent)
466- if event. descriptor. datePeriod . contains ( dateInterval. lowerBound ) {
466+ if event. descriptor. dateInterval . contains ( dateInterval. start ) {
467467 overlappingEvents. append ( event)
468468 continue
469469 }
470470 } else {
471471 let lastEvent = overlappingEvents. last!
472- if ( longestEvent. descriptor. datePeriod . overlaps ( event. descriptor. datePeriod ) && ( longestEvent. descriptor. endDate != event. descriptor. startDate || style. eventGap <= 0.0 ) ) ||
473- ( lastEvent. descriptor. datePeriod . overlaps ( event. descriptor. datePeriod ) && ( lastEvent. descriptor. endDate != event. descriptor. startDate || style. eventGap <= 0.0 ) ) {
472+ if ( longestEvent. descriptor. dateInterval . intersects ( event. descriptor. dateInterval ) && ( longestEvent. descriptor. dateInterval . end != event. descriptor. dateInterval . start || style. eventGap <= 0.0 ) ) ||
473+ ( lastEvent. descriptor. dateInterval . intersects ( event. descriptor. dateInterval ) && ( lastEvent. descriptor. dateInterval . end != event. descriptor. dateInterval . start || style. eventGap <= 0.0 ) ) {
474474 overlappingEvents. append ( event)
475475 continue
476476 }
@@ -485,8 +485,8 @@ public final class TimelineView: UIView {
485485 for overlappingEvents in groupsOfEvents {
486486 let totalCount = CGFloat ( overlappingEvents. count)
487487 for (index, event) in overlappingEvents. enumerated ( ) {
488- let startY = dateToY ( event. descriptor. datePeriod . lowerBound )
489- let endY = dateToY ( event. descriptor. datePeriod . upperBound )
488+ let startY = dateToY ( event. descriptor. dateInterval . start )
489+ let endY = dateToY ( event. descriptor. dateInterval . end )
490490 let floatIndex = CGFloat ( index)
491491 let x = style. leadingInset + floatIndex / totalCount * calendarWidth
492492 let equalWidth = calendarWidth / totalCount
@@ -561,13 +561,13 @@ public final class TimelineView: UIView {
561561 return calendar. component ( component, from: date)
562562 }
563563
564- private func getDateInterval( date: Date ) -> ClosedRange < Date > {
564+ private func getDateInterval( date: Date ) -> DateInterval {
565565 let earliestEventMintues = component ( component: . minute, from: date)
566566 let splitMinuteInterval = style. splitMinuteInterval
567567 let minute = component ( component: . minute, from: date)
568568 let minuteRange = ( minute / splitMinuteInterval) * splitMinuteInterval
569569 let beginningRange = calendar. date ( byAdding: . minute, value: - ( earliestEventMintues - minuteRange) , to: date) !
570570 let endRange = calendar. date ( byAdding: . minute, value: splitMinuteInterval, to: beginningRange) !
571- return beginningRange ... endRange
571+ return DateInterval ( start : beginningRange, end : endRange)
572572 }
573573}
0 commit comments