iOS开发知识小集Demo控件

iOS开发中创建周历选择器

2019-08-26  本文已影响0人  梁森的简书

先看效果图:

0.周历.png

我们要解决的问题:某年的某个月显示哪几个周?

我们使用一个UIPickerView创建自定义的周历选择器,数据源来自三个数组:1.装年的数组 2.装月的数组 3.装周的数组。
前两个数据源比较好获取,想要显示多少年就把我们需要的年放入到数组中即可,装月的数组更好获取,直接在数组中放入12个月即可,比较难获取的就是装周的数组。
要获取装周的数组中的数据,首先我们需要确定哪一年、那一月,在确定了年、月之后我们才能确定周。
确定某年的某个月:

  _selectedMonth = [NSDate dateWithYear:[_years[_yearRow] integerValue] Month:[_month[_monthRow] integerValue] Day:1];

在确定了某年某月之后我们可以获取到这个月一共有多少个周。
方法:

   [_selectedMonth numberOfWeeksInCurrentMonth];

这个方法是NSDate的一个分类中的方法。
我们可以遍历获取的到周,从第一周到最后一周,我们可以获取每一周的第一天和最后一天。
方法:

  weekFirstDate = [_selectedMonth beginDateByWeekLevel:i];
    weekEndDate = [_selectedMonth endDateByWeekLevel:i];
  [self.weekdays addObject:@[weekFirstDate,weekEndDate]];

该方法同样也是NSDate的一个分类中的方法,这样我们就能获取到第三个数组中的数据了。

确定某年某月、某月有多少周、每个周的第一天和最后一天的方法我们都可以通过NSDate的一个分类中的方法轻松获取,下面是一个别人写的demo,里面包含了NSDate的分类,大家可以下载下来看看。

demo地址:***https://gitee.com/liangsenliangsen/week_selector.git

本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。😊

上一篇下一篇

猜你喜欢

热点阅读