iOS自定義日期demo分享
有個項目需求是做個在日期上選擇的,就是這種:

網(wǎng)上看了幾個日期的demo都太厚重了,移植起來太麻煩,然后打算自己寫。
就先寫個簡化的demo看看,主要有幾個關(guān)鍵點:
- 首先要根據(jù)當(dāng)前日期獲取這個月有幾天
- 然后判斷這個月份第一天是周幾
- 再根據(jù)上面兩個數(shù)據(jù)在合理的位置顯示數(shù)據(jù)
- 還要記錄下當(dāng)前的日期方便切換月份
- 如果調(diào)接口的話其實根據(jù)后臺給數(shù)據(jù)比對下對應(yīng)的日期展示數(shù)據(jù)即可
其中有一個容易迷糊的是獲取的星期天是第一天,下標(biāo)是1
所以我們的數(shù)組是這樣的
_weekdays = [NSArray arrayWithObjects: [NSNull null],@"星期日", @"周一", @"周二", @"周三", @"周四", @"周五", @"周六", nil];
好吧,看下寫出來的效果:

總的來說沒什么難度,就是要熟悉下關(guān)于日期的api.
//3.獲取這個月總天數(shù),填充數(shù)據(jù)源
NSRange range = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:self.currentDate];
NSUInteger numberOfDaysInMonth = range.length;
NSLog(@"%lu", (unsigned long)numberOfDaysInMonth);
//4.獲取這個月的第一天為周幾
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *comps = [cal
components:NSCalendarUnitYear | NSCalendarUnitMonth
fromDate:self.currentDate];
lastMonthComps.day = 1;
NSDate *firstDay = [cal dateFromComponents:comps];
NSCalendarUnit calendarUnit = NSCalendarUnitWeekday;
NSDateComponents *firsComponents = [cal components:calendarUnit fromDate:firstDay];
NSLog(@"%@", [_weekdays objectAtIndex:firsComponents.weekday]);
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
講解iOS開發(fā)中對音效和音樂播放的簡單實現(xiàn)
這篇文章主要介紹了iOS開發(fā)中對音效和音樂播放的簡單實現(xiàn),代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下2015-11-11
iOS 10 和Xcode8 一起 創(chuàng)建 Siri 功能步驟詳解(OC寫的 )
這篇文章主要介紹了iOS 10 和Xcode8 一起 創(chuàng)建 Siri 功能(OC寫的 ),本文分步驟給大家介紹的非常詳細(xì),需要的朋友可以參考下2017-12-12
iOS微信分享后關(guān)閉發(fā)送成功提示并返回應(yīng)用
這篇文章主要為大家詳細(xì)介紹了iOS微信分享后關(guān)閉發(fā)送成功提示并返回應(yīng)用的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09

