FSCalendar/Example/CalendarConfigViewController.m

65 lines
2.8 KiB
Objective-C

//
// CalendarConfigViewController.m
// FSCalendar
//
// Created by Wenchao Ding on 2/15/15.
// Copyright (c) 2015 =. All rights reserved.
//
#import "CalendarConfigViewController.h"
#import "FScalendar.h"
@implementation CalendarConfigViewController
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [super tableView:tableView cellForRowAtIndexPath:indexPath];
if (indexPath.section == 0) {
cell.accessoryType = self.viewController.theme == indexPath.row ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
} else if (indexPath.section == 1) {
cell.accessoryType = self.viewController.lunar ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
} else if (indexPath.section == 2) {
cell.accessoryType = indexPath.row == 1 - self.viewController.scrollDirection ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
} else if (indexPath.section == 4) {
cell.accessoryType = indexPath.row == self.viewController.firstWeekday - 1 ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[[tableView visibleCells] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
if ([tableView indexPathForCell:obj].section == indexPath.section) {
[obj setAccessoryType:UITableViewCellAccessoryNone];
}
}];
[[tableView cellForRowAtIndexPath:indexPath] setAccessoryType:UITableViewCellAccessoryCheckmark];
if (indexPath.section == 0) {
if (indexPath.row == self.viewController.theme) {
return;
}
self.viewController.theme = indexPath.row;
} else if (indexPath.section == 1) {
self.viewController.lunar = !self.viewController.lunar;
} else if (indexPath.section == 2) {
if (self.viewController.scrollDirection == 1 - indexPath.row) {
return;
}
self.viewController.scrollDirection = (FSCalendarScrollDirection)(1-indexPath.row);
} else if (indexPath.section == 3) {
self.viewController.selectedDate = _datePicker.date;
[[tableView cellForRowAtIndexPath:indexPath] setAccessoryType:UITableViewCellAccessoryNone];
} else if (indexPath.section == 4) {
if (self.viewController.firstWeekday == indexPath.row + 1) {
return;
}
self.viewController.firstWeekday = indexPath.row + 1;
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.05 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self.navigationController popViewControllerAnimated:YES];
});
}
@end