103 lines
3.4 KiB
Objective-C
103 lines
3.4 KiB
Objective-C
//
|
|
// MultipleSelectionViewController.m
|
|
// FSCalendar
|
|
//
|
|
// Created by dingwenchao on 9/9/15.
|
|
// Copyright (c) 2015 wenchaoios. All rights reserved.
|
|
//
|
|
|
|
#import "MultipleSelectionViewController.h"
|
|
|
|
@implementation MultipleSelectionViewController
|
|
|
|
- (instancetype)init
|
|
{
|
|
self = [super init];
|
|
if (self) {
|
|
self.title = @"FSCalendar";
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)loadView
|
|
{
|
|
UIView *view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
|
view.backgroundColor = [UIColor colorWithRed:0.95 green:0.95 blue:0.95 alpha:1.0];
|
|
self.view = view;
|
|
|
|
CGFloat height = [[UIDevice currentDevice].model hasPrefix:@"iPad"] ? 450 : 300;
|
|
FSCalendar *calendar = [[FSCalendar alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.navigationController.navigationBar.frame), view.bounds.size.width, height)];
|
|
calendar.dataSource = self;
|
|
calendar.delegate = self;
|
|
calendar.backgroundColor = [UIColor whiteColor];
|
|
calendar.allowsMultipleSelection = YES;
|
|
[self.view addSubview:calendar];
|
|
self.calendar = calendar;
|
|
}
|
|
|
|
- (void)viewDidLoad
|
|
{
|
|
[super viewDidLoad];
|
|
[_calendar selectDate:[_calendar dateByAddingDays:1 toDate:[NSDate date]]];
|
|
|
|
#if 0
|
|
FSCalendarTestSelectDate
|
|
#endif
|
|
}
|
|
|
|
- (BOOL)calendar:(FSCalendar *)calendar shouldSelectDate:(NSDate *)date
|
|
{
|
|
BOOL shouldDedeselect = [_calendar dayOfDate:date] != 5;
|
|
if (!shouldDedeselect) {
|
|
[[[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"Forbidden date %@ to be selected",[calendar stringFromDate:date]] message:@"" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
|
|
return NO;
|
|
}
|
|
return YES;
|
|
}
|
|
|
|
- (BOOL)calendar:(FSCalendar *)calendar shouldDeselectDate:(NSDate *)date
|
|
{
|
|
BOOL shouldDedeselect = [_calendar dayOfDate:date] != 7;
|
|
if (!shouldDedeselect) {
|
|
[[[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"Forbidden date %@ to be deselected",[calendar stringFromDate:date]] message:@"" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] show];
|
|
return NO;
|
|
}
|
|
return YES;
|
|
}
|
|
|
|
- (void)calendar:(FSCalendar *)calendar didSelectDate:(NSDate *)date
|
|
{
|
|
NSMutableArray *selectedDates = [NSMutableArray arrayWithCapacity:calendar.selectedDates.count];
|
|
[calendar.selectedDates enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
|
|
[selectedDates addObject:[calendar stringFromDate:obj format:@"yyyy/MM/dd"]];
|
|
}];
|
|
NSLog(@"selected dates is %@",selectedDates);
|
|
}
|
|
|
|
- (void)calendar:(FSCalendar *)calendar didDeselectDate:(NSDate *)date
|
|
{
|
|
NSMutableArray *selectedDates = [NSMutableArray arrayWithCapacity:calendar.selectedDates.count];
|
|
[calendar.selectedDates enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
|
|
[selectedDates addObject:[calendar stringFromDate:obj format:@"yyyy/MM/dd"]];
|
|
}];
|
|
NSLog(@"selected dates is %@",selectedDates);
|
|
}
|
|
|
|
- (UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance selectionColorForDate:(NSDate *)date
|
|
{
|
|
if ([_calendar dayOfDate:date] % 2 == 0) {
|
|
return appearance.selectionColor;
|
|
}
|
|
return [UIColor purpleColor];
|
|
}
|
|
|
|
- (UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance borderDefaultColorForDate:(NSDate *)date
|
|
{
|
|
if ([@[@17,@18,@19] containsObject:@([calendar dayOfDate:date])]) {
|
|
return [UIColor magentaColor];
|
|
}
|
|
return appearance.borderDefaultColor;
|
|
}
|
|
|
|
@end
|