iOS開發(fā)中創(chuàng)建周歷選擇器

先看效果圖:

0.周歷.png

我們要解決的問(wèn)題:某年的某個(gè)月顯示哪幾個(gè)周?

我們使用一個(gè)UIPickerView創(chuàng)建自定義的周歷選擇器,數(shù)據(jù)源來(lái)自三個(gè)數(shù)組:1.裝年的數(shù)組 2.裝月的數(shù)組 3.裝周的數(shù)組。
前兩個(gè)數(shù)據(jù)源比較好獲取,想要顯示多少年就把我們需要的年放入到數(shù)組中即可,裝月的數(shù)組更好獲取,直接在數(shù)組中放入12個(gè)月即可,比較難獲取的就是裝周的數(shù)組。
要獲取裝周的數(shù)組中的數(shù)據(jù),首先我們需要確定哪一年、那一月,在確定了年、月之后我們才能確定周。
確定某年的某個(gè)月:

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

在確定了某年某月之后我們可以獲取到這個(gè)月一共有多少個(gè)周。
方法:

   [_selectedMonth numberOfWeeksInCurrentMonth];

這個(gè)方法是NSDate的一個(gè)分類中的方法。
我們可以遍歷獲取的到周,從第一周到最后一周,我們可以獲取每一周的第一天和最后一天。
方法:

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

該方法同樣也是NSDate的一個(gè)分類中的方法,這樣我們就能獲取到第三個(gè)數(shù)組中的數(shù)據(jù)了。

確定某年某月、某月有多少周、每個(gè)周的第一天和最后一天的方法我們都可以通過(guò)NSDate的一個(gè)分類中的方法輕松獲取,下面是一個(gè)別人寫的demo,里面包含了NSDate的分類,大家可以下載下來(lái)看看。

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

本篇文章到這里就結(jié)束了,愿大家加班不多工資多,男同胞都有女朋友,女同胞都有男朋友。??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 主要有以下幾個(gè)類: NSDate:表示一個(gè)具體的絕對(duì)的時(shí)間點(diǎn)。NSTimeZone:表示時(shí)區(qū)信息。NSLocale...
    獻(xiàn)國(guó)閱讀 5,438評(píng)論 0 4
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,681評(píng)論 1 32
  • 1.badgeVaule氣泡提示 2.git終端命令方法> pwd查看全部 >cd>ls >之后桌面找到文件夾內(nèi)容...
    i得深刻方得S閱讀 4,987評(píng)論 1 9
  • 堅(jiān)持日更66天之后,結(jié)束日更,開始做別的,更有意思或者更無(wú)聊的事情,就是去探索!
    魔法新石閱讀 70評(píng)論 0 1
  • 一下午的時(shí)間,寶玉都在看資料聽匯報(bào)接電話,等歇下來(lái)才突然記起和林黛玉吵過(guò)架呢,匆匆收拾一下皮包決定晚上不再應(yīng)酬,去...
    安珊_395a閱讀 434評(píng)論 0 6

友情鏈接更多精彩內(nèi)容