[翻譯] JTCalendar


JTCalendar

 

JTCalendar is a calendar control for iOS easily customizable.

JTCalendar 是一個很容易定制的日歷的控件。

 

Usage

Basic usage - 基本使用方法

You have to create two views in your UIViewController.

你需要在你的UIViewController創建出兩個view。

The first view is JTCalendarMenuView, it represents the months.

第一個view是JTCalendarMenuView,他代表着月份。

The second view is JTCalendarContentView, the calendar itself.

第二個view是JTCalendarContentView,這個是日歷本身。

Your UIViewController must implement JTCalendarDataSource

你的UIViewController 必須實現JTCalendarDataSource代理。

#import <UIKit/UIKit.h> #import "JTCalendar.h" @interface ViewController : UIViewController<JTCalendarDataSource> @property (weak, nonatomic) IBOutlet JTCalendarMenuView *calendarMenuView; @property (weak, nonatomic) IBOutlet JTCalendarContentView *calendarContentView; @property (strong, nonatomic) JTCalendar *calendar; @end

JTCalendar is used to coordinate calendarMenuView and calendarContentView.

JTCalendar 是用來定位calendarMenuView與 calendarContentView的。

@implementation ViewController

- (void)viewDidLoad { [super viewDidLoad]; self.calendar = [JTCalendar new]; [self.calendar setMenuMonthsView:self.calendarMenuView]; [self.calendar setContentView:self.calendarContentView]; [self.calendar setDataSource:self]; } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; [self.calendar reloadData]; // Must be call in viewDidAppear } - (BOOL)calendarHaveEvent:(JTCalendar *)calendar date:(NSDate *)date { return NO; } - (void)calendarDidDateSelected:(JTCalendar *)calendar date:(NSDate *)date { NSLog(@"%@", date); } @end 

 

Switch to week view

切換到week

If you want see just one week at time you can switch when you want between the weekMode.

如果你只想看一周的時間,你可以切換到weekMode模式

self.calendar.calendarAppearance.isWeekMode = YES;
[self.calendar reloadAppearance];

 

WARNING

注意

When you change the mode, it doesn't change the height of calendarContentView, you have to do it yourself. See the project in example for more details.

當你切換樣式時,他並沒有改變calendarContentView的高度,你需要自己手動設置。你可以在項目中找到實現細節。

 

Customize the design

自定義設計

You have a lot of options available for personnalize the design. Check the JTCalendarAppearance.h file for see all options.

你有這很多很多的選項來定制設計。你可以再JTCalendarAppearance.h文件中找到這些配置選項。

self.calendar.calendarAppearance.calendar.firstWeekday = 2; // Monday self.calendar.calendarAppearance.ratioContentMenu = 1.; self.calendar.calendarAppearance.menuMonthTextColor = [UIColor whiteColor]; self.calendar.calendarAppearance.dayCircleColorSelected = [UIColor blueColor]; self.calendar.calendarAppearance.dayTextColorSelected = [UIColor whiteColor]; [self.calendar reloadAppearance];

 

Recommendation

推薦用法

The call to reloadAppearance is expensive, reloadAppearance is call by setMenuMonthsView andsetContentView.

調用reloadAppearance 開銷很大,setMenuMonthsView 與andsetContentView會調用reloadAppearance 方法

For better performance define the appearance just after instanciate JTCalendar.

BAD example:

self.calendar = [JTCalendar new];

[self.calendar setMenuMonthsView:self.calendarMenuView]; [self.calendar setContentView:self.calendarContentView]; [self.calendar setDataSource:self]; self.calendar.calendarAppearance.calendar.firstWeekday = 2; // Monday self.calendar.calendarAppearance.ratioContentMenu = 1.; self.calendar.calendarAppearance.menuMonthTextColor = [UIColor whiteColor]; self.calendar.calendarAppearance.dayCircleColorSelected = [UIColor blueColor]; self.calendar.calendarAppearance.dayTextColorSelected = [UIColor whiteColor]; [self.calendar reloadAppearance]; // You have to call reloadAppearance

GOOD example:

self.calendar = [JTCalendar new];

self.calendar.calendarAppearance.calendar.firstWeekday = 2; // Monday self.calendar.calendarAppearance.ratioContentMenu = 1.; self.calendar.calendarAppearance.menuMonthTextColor = [UIColor whiteColor]; self.calendar.calendarAppearance.dayCircleColorSelected = [UIColor blueColor]; self.calendar.calendarAppearance.dayTextColorSelected = [UIColor whiteColor]; [self.calendar setMenuMonthsView:self.calendarMenuView]; [self.calendar setContentView:self.calendarContentView]; [self.calendar setDataSource:self]; // You don't have to call reloadAppearance

You may also want to open your calendar on a specific date, by defaut it's [NSDate date].

你也許想在打開日歷的時候定位到指定的日期,默認值是[NSDate date]

[self.calendar setCurrentDate:myDate];

Requirements

  • iOS 7 or higher
  • Automatic Reference Counting (ARC)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM