[iOS]自定义日历选择

来源:互联网 发布:画派 知乎 编辑:程序博客网 时间:2024/05/21 21:21

[iOS]自定义日历选择

demo:http://download.csdn.net/download/u012881779/9946915

写这个demo是因为产品有个特殊需求,要按照日历的样式选择时间,但只能选择过去7天范围内的日期,若可选日期超过本月则可以切换月份。

功能比较简单,用网上demo改太麻烦,就简单写了一个。

#import "HomeViewController.h"#import "UIBarButtonItem+Gamin.h"#import "DMCalendarVC.h"#import "DMCalendarDate.h"#import "DMCalendarModel.h"#import "DMPublicHeader.h"@interface HomeViewController () <OrderCheckTimeDelegate>@property (strong, nonatomic) DMCalendarVC *calendarVC;@property (strong, nonatomic) DMCalendarModel *saveCalModel;@property (nonatomic) BOOL timeIsSelect;@end@implementation HomeViewController- (void)viewDidLoad {    [super viewDidLoad];    self.title = @"日历";    _saveCalModel = [DMCalendarDate getDefaultCalendarModel];    self.navigationItem.leftBarButtonItem = [UIBarButtonItem itemWithTarget:self action:@selector(selectTimeAction:) Text:_saveCalModel.dMonthDay textColor:[UIColor colorWithRed:17/255.0 green:140/255.0 blue:206/255.0 alpha:1] image:@"下拉" highImage:@"下拉"];}- (void)selectTimeAction:(id)sender {    UIButton *markBut = [self.navigationItem.leftBarButtonItem.customView viewWithTag:901];    NSString *normImg = @"下拉";    NSString *highImg = @"下拉";    if (_timeIsSelect) {        _timeIsSelect = NO;        [_calendarVC.view removeFromSuperview];    } else {        _timeIsSelect = YES;        normImg = @"上拉";        highImg = @"上拉";        if (!_calendarVC) {            _calendarVC = [[DMCalendarVC alloc] initWithNibName:@"DMCalendarVC" bundle:nil];        }        _calendarVC.view.frame = CGRectMake(0, 64, KSCREENWIDTH, KSCREENHEIGHT-64);        _calendarVC.delegate = self;        _calendarVC.saveCalModel = _saveCalModel;        [self.view addSubview:_calendarVC.view];        [_calendarVC settingAction];    }    [markBut setBackgroundImage:[UIImage imageNamed:normImg] forState:UIControlStateNormal];    [markBut setBackgroundImage:[UIImage imageNamed:highImg] forState:UIControlStateHighlighted];}#pragma mark OrderCheckTimeDelegate- (void)OrderCheckTimeAction:(id)sender {    _saveCalModel = (DMCalendarModel *)sender;    if (_saveCalModel) {        [self selectTimeAction:nil];        self.navigationItem.leftBarButtonItem = [UIBarButtonItem itemWithTarget:self action:@selector(selectTimeAction:) Text:_saveCalModel.dMonthDay textColor:[UIColor colorWithRed:17/255.0 green:140/255.0 blue:206/255.0 alpha:1] image:@"下拉" highImage:@"下拉"];    }}- (void)removeCalendarViewAction {    [self selectTimeAction:nil];}@end 


示意图: