• Stars
    star
    100
  • Rank 340,703 (Top 7 %)
  • Language
    Objective-C
  • Created about 9 years ago
  • Updated almost 9 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

支持跨月多选日期的轻量级日历 通俗易懂

工作中需要用到多选的日历,网上搜索后多是单选日历, 于是写了个简单的日历选择器(点击跳转 Swift版LDCalendarSwift):

1.今天用红框标注,只能选择今天以后的工作日期,支持跨月份多选

2.因为每个月的第一天在第一行,所以有时候需要6行才能显示,仿照铁路12306的日历,显示了6行, 选择点击下一个月的日期时会自动切到下一个月,但是可以直接在当前月取消。

3.本日历是基于手势点击切换按钮状态的,用UIButton 的Normal Disable Selected 三种状态代码还可以更简单一点(Swift版实现原理),当初用手势主要是为了以后可以扩展处理3种以上的状态。

日历效果演示

功能说明:

详情可查看Demo中代码

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    
    self.calendarView.defaultDays = _seletedDays;
    [self.calendarView show];
}

- (LDCalendarView *)calendarView {
    if (!_calendarView) {
        _calendarView = [[LDCalendarView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH,SCREEN_HEIGHT)];
        [self.view addSubview:_calendarView];
        
        __weak typeof(self) weakSelf = self;
        _calendarView.complete = ^(NSArray *result) {
            if (result) {
                weakSelf.seletedDays = result.mutableCopy;
                [weakSelf.tableView reloadData];
            }
        };
    }
    return _calendarView;
}

Support : iOS6 +