iOS自定義日期demo分享
有個(gè)項(xiàng)目需求是做個(gè)在日期上選擇的,就是這種:
網(wǎng)上看了幾個(gè)日期的demo都太厚重了,移植起來(lái)太麻煩,然后打算自己寫(xiě)。
就先寫(xiě)個(gè)簡(jiǎn)化的demo看看,主要有幾個(gè)關(guān)鍵點(diǎn):
- 首先要根據(jù)當(dāng)前日期獲取這個(gè)月有幾天
- 然后判斷這個(gè)月份第一天是周幾
- 再根據(jù)上面兩個(gè)數(shù)據(jù)在合理的位置顯示數(shù)據(jù)
- 還要記錄下當(dāng)前的日期方便切換月份
- 如果調(diào)接口的話(huà)其實(shí)根據(jù)后臺(tái)給數(shù)據(jù)比對(duì)下對(duì)應(yīng)的日期展示數(shù)據(jù)即可
其中有一個(gè)容易迷糊的是獲取的星期天是第一天,下標(biāo)是1
所以我們的數(shù)組是這樣的
_weekdays = [NSArray arrayWithObjects: [NSNull null],@"星期日", @"周一", @"周二", @"周三", @"周四", @"周五", @"周六", nil];
好吧,看下寫(xiě)出來(lái)的效果:
總的來(lái)說(shuō)沒(méi)什么難度,就是要熟悉下關(guān)于日期的api.
//3.獲取這個(gè)月總天數(shù),填充數(shù)據(jù)源 NSRange range = [calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:self.currentDate]; NSUInteger numberOfDaysInMonth = range.length; NSLog(@"%lu", (unsigned long)numberOfDaysInMonth); //4.獲取這個(gè)月的第一天為周幾 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]);
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- iOS自定義UIDatePicker日期選擇器視圖
- iOS自定義UIDatepicker日期選擇器視圖分享
- iOS如何獲取當(dāng)前日期前后N天的時(shí)間示例代碼
- iOS獲取某個(gè)日期后n個(gè)月的日期
- iOS自定義日期、時(shí)間、城市選擇器實(shí)例代碼
- iOS實(shí)現(xiàn)自定義日期選擇器示例
- iOS 獲取公歷、農(nóng)歷日期的年月日的實(shí)例代碼
- Android開(kāi)發(fā)中實(shí)現(xiàn)IOS風(fēng)格底部選擇器(支持時(shí)間 日期 自定義)
- iOS計(jì)算上次日期距離現(xiàn)在多久的代碼
- iOS自定義日期和數(shù)據(jù)源選擇控件
相關(guān)文章
iOS Block解開(kāi)多年以來(lái)一直的誤解
這篇文章主要給大家介紹了關(guān)于iOS Block多年以來(lái)一直的誤解如何解開(kāi)的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05IOS開(kāi)發(fā)中如何設(shè)計(jì)短信驗(yàn)證碼防刷機(jī)制
給大家詳細(xì)分享一下在IOS的項(xiàng)目開(kāi)發(fā)中如何設(shè)計(jì)短信驗(yàn)證碼防刷機(jī)制,已經(jīng)步驟詳解,喜歡的朋友參考下吧。2018-02-02深入理解Objective-C中類(lèi)的數(shù)據(jù)結(jié)構(gòu)
最近發(fā)現(xiàn)用Objective-C確實(shí)好容易,下面這篇文章主要給大家介紹了關(guān)于Objective-C中類(lèi)的數(shù)據(jù)結(jié)構(gòu)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05iOS代碼瘦身實(shí)踐之如何刪除無(wú)用的類(lèi)
這篇文章主要給大家介紹了關(guān)于iOS代碼瘦身實(shí)踐之如何刪除無(wú)用的類(lèi),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家各位iOS開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08iOS學(xué)習(xí)教程之UIView中坐標(biāo)轉(zhuǎn)換詳解
這篇文章主要給大家介紹了關(guān)于iOS UIView中坐標(biāo)轉(zhuǎn)換的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)跟著小編一起看看吧。2017-05-05詳解iOS應(yīng)用的設(shè)計(jì)模式開(kāi)發(fā)中Mediator中介者模式的使用
這篇文章主要介紹了iOS應(yīng)用的設(shè)計(jì)模式開(kāi)發(fā)中Mediator中介者模式的使用,示例代碼為傳統(tǒng)的Objective-C語(yǔ)言,需要的朋友可以參考下2016-03-03iOS實(shí)現(xiàn)賬號(hào)、密碼記住功能
這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)賬號(hào)、密碼記住功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03IOS實(shí)現(xiàn)圖片輪播無(wú)限循環(huán)效果
這篇文章主要為大家詳細(xì)介紹了IOS實(shí)現(xiàn)圖片輪播無(wú)限循環(huán)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03