iOS開発-UIコントロール:カレンダー選択コントロール
変換元:http://www.jianshu.com/p/bbe608a4abda?utm_campaign=hugo&utm_medium=reader_share&utm_content=note
今日のプロジェクトでは、次のようなニーズに遭遇しました.
QQ20141201-1.png
かなりカスタマイズが必要なカレンダー選択コントロールは、以前カレンダーを作ったことがなく、ちょうど検討してみました.
図から分かるように、このようなviewを作るには以下のいくつかのデータが必要です.
本日の日付今月は何日かあります
今月の初日は何曜日1、今日の日付はやりやすくて、
3、初日は何曜日ですか
表はcollectionViewを使って、とても簡単で、demoアドレスhttps://github.com/StephenZhuang/SZCalendarPicker
最後の効果は以下の通りです.
SZCalendarPicker.gif
今日のプロジェクトでは、次のようなニーズに遭遇しました.
QQ20141201-1.png
かなりカスタマイズが必要なカレンダー選択コントロールは、以前カレンダーを作ったことがなく、ちょうど検討してみました.
図から分かるように、このようなviewを作るには以下のいくつかのデータが必要です.
本日の日付今月は何日かあります
今月の初日は何曜日1、今日の日付はやりやすくて、
[NSDate date]
何でもあります.2、今月は何日ですか- (NSInteger)totaldaysInThisMonth:(NSDate *)date{
NSRange totaldaysInMonth = [[NSCalendar currentCalendar] rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:date];
return totaldaysInMonth.length;
}
3、初日は何曜日ですか
- (NSInteger)firstWeekdayInThisMonth:(NSDate *)date{
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setFirstWeekday:1];//1.Sun. 2.Mon. 3.Thes. 4.Wed. 5.Thur. 6.Fri. 7.Sat.
NSDateComponents *comp = [calendar components:(NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay) fromDate:date];
[comp setDay:1];
NSDate *firstDayOfMonthDate = [calendar dateFromComponents:comp];
NSUInteger firstWeekday = [calendar ordinalityOfUnit:NSCalendarUnitWeekday inUnit:NSCalendarUnitWeekOfMonth forDate:firstDayOfMonthDate];
return firstWeekday - 1;
}
表はcollectionViewを使って、とても簡単で、demoアドレスhttps://github.com/StephenZhuang/SZCalendarPicker
最後の効果は以下の通りです.
SZCalendarPicker.gif