zoukankan      html  css  js  c++  java
  • [翻译] 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)
  • 相关阅读:
    hdu1561 The more, The Better 树形DP+分组背包
    hdu1520 Anniversary party 简单树形DP
    hdu1054 Strategic Game 树形DP
    hdu1011 Starship Troopers 树形DP
    hdu4681 String DP(2013多校第8场)
    zoj3469 Food Delivery 区间DP
    LightOJ 1422 -Halloween Costumes 区间DP
    hdu4283 You Are the One 区间DP
    poj1651 Multiplication Puzzle 区间DP
    codeforce 149D Coloring Brackets 区间DP
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/4093660.html
Copyright © 2011-2022 走看看