Skip to content

Commit

Permalink
Method for check longPress
Browse files Browse the repository at this point in the history
  • Loading branch information
Husseinhj committed Nov 21, 2017
1 parent 2cff4bc commit b8bcb92
Showing 1 changed file with 79 additions and 0 deletions.
79 changes: 79 additions & 0 deletions ios_calendar/Sources/CalendarView.m
Original file line number Diff line number Diff line change
Expand Up @@ -1063,6 +1063,85 @@ - (void)doubleTap:(UITapGestureRecognizer *)recognizer
}
}

- (void) longPress:(UILongPressGestureRecognizer *) press{
//TODO: create start rect and with another tap select the end section
NSSet *key = [press valueForKey:@"activeTouches"];
if (key.count == 0) {
return;
}

NSInteger day = 0;
CGPoint touchPoint = [press locationInView:self];

CalendarViewRect *rectWasTapped = nil;

if (type == CalendarViewTypeYear){
rectWasTapped = [self checkPoint:touchPoint inArray:yearRects];
if (startRangeYear == 0) {
startRangeDay = 1;
startRangeMonth = 1;
startRangeYear = rectWasTapped.value;
} else {
endRangeMonth = 12;
if (startRangeYear > rectWasTapped.value) {
endRangeYear = startRangeDay;
startRangeYear = rectWasTapped.value;
} else {
endRangeYear = rectWasTapped.value;
}
endRangeDay = [self getLastDayOfMonth:endRangeMonth year:endRangeYear];
}
} else if (type == CalendarViewTypeMonth) {
rectWasTapped = [self checkPoint:touchPoint inArray:monthRects];

if (startRangeMonth == 0) {
startRangeDay = 1;
startRangeMonth = rectWasTapped.value;
startRangeYear = currentYear;
} else {
endRangeYear = currentYear;
if (startRangeMonth > rectWasTapped.value) {
endRangeMonth = startRangeMonth;
startRangeMonth = rectWasTapped.value;
} else {
endRangeMonth = rectWasTapped.value;
}
endRangeDay = [self getLastDayOfMonth:endRangeMonth year:endRangeYear];
}
} else if (type == CalendarViewTypeDay) {
rectWasTapped = [self checkPoint:touchPoint inArray:dayRects];
if (rectWasTapped) {
day = rectWasTapped.value;
if (startRangeDay == 0 && startRangeMonth == 0 && startRangeYear == 0) {
startRangeDay = day;
startRangeMonth = currentMonth;
startRangeYear = currentYear;
} else {
if (day > startRangeDay && currentMonth >= startRangeMonth && currentYear >= startRangeYear) {
endRangeDay = day;
endRangeMonth = currentMonth;
endRangeYear = currentYear;
} else {
endRangeDay = startRangeDay;
endRangeMonth = startRangeMonth;
endRangeYear = startRangeYear;

startRangeDay = day;
startRangeMonth = currentMonth;
startRangeYear = currentYear;
}
}
}
}

startDate = [self generateDateWithDay:startRangeDay month:startRangeMonth year:startRangeYear];
if (endRangeYear > 0) {
endDate = [self generateDateWithDay:endRangeDay month:endRangeMonth year:endRangeYear];
}

[self selectRangeOfCalendar];
[self setNeedsDisplay];
}
#pragma mark - Additional functions

- (BOOL)checkPoint:(CGPoint)point inArray:(NSMutableArray *)array andSetValue:(NSInteger *)value{
Expand Down

0 comments on commit b8bcb92

Please sign in to comment.