最近由于项目需要用到周日历,由于不是太过复杂,就自己封装了一下,当然借也鉴了别人的一些思想,下面详细的介绍下自己的实现的方法
我是选择UICollectionView实现的,相比UIScrollView代码更有条理一些.
思路是:1.先宏定义下创建UICollectionView的Sections的个数,通过这几个Section来复用显示日期,
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return PAGES_COUNT;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 7;
}
2.当collectionView滑动到时更新显示的数据,设置setContentOffset保证collectionView一直处在中间
用法:
1.初始化FFWeekCalender.
FFWeekCalender *weekCalender = [[FFWeekCalender alloc] initWithFrame:frame];
2.设置currentDate属性,初始化日历显示的当前日期,不选默认是当天.
weekCalender.currentDate = [NSDate date];
3.更新日历
- (void)reloadCalender;
4.weekCalender.chooseDates选择多个日期标记.它是个数组,元素是NSDate
demo https://github.com/fengzifeng/FFWeekCalender