@@ -195,6 +195,7 @@ - (void)scrollViewDidScroll:(UIScrollView *)scrollView
195195 CGRect leftFrame = week0.frame ;
196196 CGRect middleFrame = week1.frame ;
197197 CGRect rightFrame = week2.frame ;
198+ NSInteger multiplier = self.effectiveUserInterfaceLayoutDirection == UIUserInterfaceLayoutDirectionLeftToRight ? 1 : -1 ;
198199
199200 if (offset.x <= 0 ) {
200201 // 0 and 1 move right
@@ -204,14 +205,14 @@ - (void)scrollViewDidScroll:(UIScrollView *)scrollView
204205 self.singleWeekViews [2 ] = week1;
205206
206207 // 2 get's updated to -1
207- week2.startDate = [self dateByAddingDays: -7 toDate: week0.startDate];
208+ week2.startDate = [self dateByAddingDays: -7 *multiplier toDate: week0.startDate];
208209 week2.frame = leftFrame;
209210 self.singleWeekViews [0 ] = week2;
210211
211212 if ([self .delegate respondsToSelector: @selector (weekSelectorDidSwipe: )]) {
212213 [self .delegate weekSelectorDidSwipe: self ];
213214 }
214- NSDate *date = [self dateByAddingDays: -7 toDate: self .selectedDate];
215+ NSDate *date = [self dateByAddingDays: -7 *multiplier toDate: self .selectedDate];
215216 [self userWillSelectDate: date];
216217 [self userDidSelectDate: date];
217218
@@ -223,14 +224,14 @@ - (void)scrollViewDidScroll:(UIScrollView *)scrollView
223224 self.singleWeekViews [1 ] = week2;
224225
225226 // 0 get's updated to 3
226- week0.startDate = [self dateByAddingDays: 7 toDate: week2.startDate];
227+ week0.startDate = [self dateByAddingDays: 7 *multiplier toDate: week2.startDate];
227228 week0.frame = rightFrame;
228229 self.singleWeekViews [2 ] = week0;
229230
230231 if ([self .delegate respondsToSelector: @selector (weekSelectorDidSwipe: )]) {
231232 [self .delegate weekSelectorDidSwipe: self ];
232233 }
233- NSDate *date = [self dateByAddingDays: 7 toDate: self .selectedDate];
234+ NSDate *date = [self dateByAddingDays: 7 *multiplier toDate: self .selectedDate];
234235 [self userWillSelectDate: date];
235236 [self userDidSelectDate: date];
236237 }
@@ -434,7 +435,8 @@ - (void)rebuildWeeks
434435
435436 // now we can build the #WEEKS subvies
436437 for (NSUInteger index = 0 ; index < WEEKS; index++) {
437- CGRect frame = CGRectMake (index * width, 0 , width, height);
438+ NSUInteger effectiveIndex = self.effectiveUserInterfaceLayoutDirection == UIUserInterfaceLayoutDirectionLeftToRight ? index : WEEKS - index - 1 ;
439+ CGRect frame = CGRectMake (effectiveIndex * width, 0 , width, height);
438440 ASSingleWeekView *singleView = [[ASSingleWeekView alloc ] initWithFrame: frame];
439441 singleView.delegate = self;
440442 singleView.startDate = date; // needs to be set AFTER delegate
0 commit comments