CocoaPods trunk is moving to be read-only. Read more on the blog, there are 18 months to go.
TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | MIT |
ReleasedLast Release | Mar 2016 |
Maintained by ’shinyG --description=’shinyG’s MAC.
// 初始化
GYCalendarView *calendarView = [GYCalendarView calendarView];
calendarView.frame = CGRectMake(HMargin, VMargin - 40, 0, 0);
[self.view addSubview:calendarView];
GYCalendarView *calendarView = [GYCalendarView calendarView];
// 设置为多月样式
calendarView.calendarViewStyle = GYCalendarViewStyleMulMonth;
calendarView.frame = CGRectMake(HMargin, 65, 0, 0);
[self.view addSubview:calendarView];
// 初始化
GYCalendarView *calendarView = [GYCalendarView calendarView];
calendarView.frame = CGRectMake(HMargin, VMargin, 0, 0);
[self.view addSubview:calendarView];
self.calendarView = calendarView;
// 自定义HeaderView
[self setupCustomHeaderView];
//自定义headerView
[self.calendarView hideHeaderView];
[self.calendarView calendarScrollEnable:NO];
UILabel *headerView = [[UILabel alloc] init];
headerView.userInteractionEnabled = YES;
headerView.tag = headerTag;
headerView.backgroundColor = [UIColor redColor];
headerView.frame = CGRectMake(HMargin, VMargin - 40, 315, 40);
headerView.text = [NSString stringWithFormat:@"%@",[self.calendarView.fireDate gy_dateByFormat:@"yyyy-MM-dd"]];
headerView.textColor = [UIColor whiteColor];
headerView.textAlignment = NSTextAlignmentCenter;
[self.view addSubview:headerView];
// 初始化左/右Label
UILabel *preLabel = [self setupLabel:@"上个月" isLeft:YES];
UILabel *nextLabel = [self setupLabel:@"下个月" isLeft:NO];
// 点击事件
UITapGestureRecognizer *preTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(preTap:)];
UITapGestureRecognizer *nextTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(nextTap:)];
[preLabel addGestureRecognizer:preTap];
[nextLabel addGestureRecognizer:nextTap];
[headerView addSubview:preLabel];
[headerView addSubview:nextLabel];
// 初始化左/右Label (UILabel *)setupLabel:(NSString *)labelText isLeft:(BOOL)isLeft
UILabel *label = [[UILabel alloc] init];
label.text = labelText;
label.textAlignment = NSTextAlignmentCenter;
label.textColor = [UIColor whiteColor];
label.backgroundColor = [UIColor blueColor];
CGFloat x = isLeft ? 0 : (315 - 60);
label.frame = CGRectMake(x, 0, 60, 40);
label.userInteractionEnabled = YES;
return label;
// 左侧label点击事件 (void)preTap:(UITapGestureRecognizer *)tap
UILabel *headerView = [self.view viewWithTag:headerTag];
headerView.text = [NSString stringWithFormat:@"%@",[[self.calendarView preMonth] gy_dateByFormat:@"yyyy-MM-dd"]];
}
// 右侧label点击事件 (void)nextTap:(UITapGestureRecognizer *)tap
UILabel *headerView = [self.view viewWithTag:headerTag];
headerView.text = [NSString stringWithFormat:@"%@",[[self.calendarView nextMonth] gy_dateByFormat:@"yyyy-MM-dd"]];
GYCalendarView *calendarView = [GYCalendarView calendarView];
// 设置起始日期
calendarView.fireDate = [NSDate dateWithTimeIntervalSinceNow:40 * 24 * 60 * 60];
calendarView.frame = CGRectMake(HMargin, 65, 0, 0);
// 称为代理
calendarView.delegate = self;
// 注册cell
[calendarView registerNib:[UINib nibWithNibName:NSStringFromClass([MyDateCell class]) bundle:nil] forCellWithReuseIdentifier:ID];
[self.view addSubview:calendarView];
self.calendarView = calendarView;
// 自定义日历Cell展现逻辑
for (int i = 0; i < 10; i++) {
MyDateModel *myDateModel = [[MyDateModel alloc] init];
myDateModel.date = [NSDate dateWithTimeIntervalSinceNow:i * 24 * 60 * 60];
[self.tickets addObject:myDateModel];
}
// 设置cell大小 (CGSize)calendarViewCellSize
return CGSizeMake(45, 55);
// 返回自定义cell (GYDateCell *)calendarView:(GYCalendarView *)calenderView dateModel:(GYDateModel *)dateModel cellForItemAtIndexPath:(NSIndexPath *)indexPath
// 取cell
MyDateCell *dateCell = (MyDateCell *)[calenderView dequeueReusableCellWithReuseIdentifier:ID forIndexPath:indexPath];
dateCell.dateModel = dateModel;
for (MyDateModel *myDateModel in self.tickets) {
if ([myDateModel.date gy_isEqualDay:dateModel.date]) {
dateCell.myDateModel = myDateModel;
return dateCell;
}
}
return dateCell;
}
// 选中cell事件 (void)calendarView:(MyDateCell *)dateCell didSelectItemAtIndexPath:(NSIndexPath *)indexPath
MyDateModel *myDateModel = dateCell.myDateModel;
myDateModel.isSelected = !myDateModel.isSelected;
dateCell.myDateModel = myDateModel;
// 切换样式 (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
if (self.calendarView.calendarViewStyle == GYCalendarViewStyleMulMonth) {
self.calendarView.calendarViewStyle = GYCalendarViewStyleMonth;
} else {
self.calendarView.calendarViewStyle = GYCalendarViewStyleMulMonth;
}