YKCalender
仿照貓眼票房日歷開發(fā)
![組件截圖](https://github.com/YangKa/YKCalender/raw/master/snapshot.png)
組件截圖
思路
采用Protocol去類型化垢揩,runtime機(jī)制降低耦合度官觅,使架構(gòu)靈活易修改。
Use
引用 #import "YKCalenderController.h"
//上一次選擇的日期和日期類型
YKResultCalenderModel *result = [YKResultCalenderModel resultCalenderWithStart:_startModel end:_endModel type:_calenderType];
YKCalenderController *VC = [[YKCalenderController alloc] initWithIntervalYears:4 defaultCalender:result selectComplete:^(BOOL selected, YKCalenderType calenderType, YKCalenderModel *startModel, YKCalenderModel *endModel) {
if (selected) {
//保存歷史選擇
_calenderType = calenderType;
_startModel = startModel;
_endModel = endModel;
//轉(zhuǎn)換日期格式,可以修改YKCalenderModel中的 `dateTextForCalenderType:`方法
NSString *startDate = [startModel dateTextForCalenderType:calenderType];
NSLog(@"startDate=%@", startDate);
if (calenderType == YKCalenderType_region) {
NSString *endDate = [endModel dateTextForCalenderType:calenderType];
NSLog(@"endDate=%@", endDate);
}
}
}];
[self presentViewController:VC animated:YES completion:nil];
自定義更多樣式
第一步:繼承YKCalenderBaseView
第二步:定義自己的布局和邏輯
第三部:將新CalenderView的標(biāo)題和類名添加到Y(jié)KCalenderController中
//隨意添加和修改順序公荧,自動映射到生成的界面中
_pageList = @[@{@"title":@"日",
@"className":@"YKDayCalenderView"},
@{@"title":@"月",
@"className":@"YKMonthCalenderView"},
@{@"title":@"季度",
@"className":@"YKQuarterCalenderView"},
@{@"title":@"年",
@"className":@"YKYearCalenderView"},
@{@"title":@"自定義",
@"className":@"YKRegionCalenderView"}
];