帮酷LOGO
0 0 评论
日历选择器

  • 源代码名称:LDCalendar
  • 源代码网址:http://www.github.com/SNTD/LDCalendar
  • LDCalendar源代码文档
  • LDCalendar源代码下载
  • Git URL:
    git://www.github.com/SNTD/LDCalendar.git
  • Git Clone代码到本地:
    git clone http://www.github.com/SNTD/LDCalendar
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/SNTD/LDCalendar
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
  • 工作中需要用到多选的日历,网上搜索后多是单选日历, 于是写了个简单的日历选择器(点击跳转 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 +




    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语