FSCalendar使用介绍(一) - Hello World

FSCalendar是一款开源iOS日历控件,支持横向、纵向滑动模式,全屏模式,带有子标题、事件设置等功能。以下是项目截图:


FSCalendar使用介绍(一) - Hello World_第1张图片
iPhone.jpg

FSCalendar使用介绍(一) - Hello World_第2张图片
iPad.jpg
  • 另外也可以用来做通知中心的插件:


    FSCalendar使用介绍(一) - Hello World_第3张图片
  • 也能够结合iOS10的新特性NCWidgetDisplayMode

    FSCalendar使用介绍(一) - Hello World_第4张图片

一. 安装

1. 使用CocoaPods安装(推荐)

CocoaPods是一款简单的依赖管理工具,使用方式可参阅用CocoaPods做iOS程序的依赖管理。
在Podfile中添加如下代码:

use_frameworks!
pod 'FSCalendar'

若在项目中依然使用Xcode7并保持iOS7的支持,请将NSCalendarExtension引入到项目中。它将NSCalendar的高级别api通过runtime方法插入,以保证在低版本中也可以使用,不需要#import

use_frameworks!的作用是告诉CocoaPods使用.frameworks来代替.a静态库。这里使用use_frameworks!的目的是为了让Podfile中的Library支持Interface Builder的属性编辑。如下图,这样可以在Interface Builder中对FSCalendar做一些可视化的属性操作,减少VC中的代码量:

FSCalenar.gif

当然如果想要在安装之前看一下效果,CocoaPods还提供了一种预览实例的模式,直接执行:

pod try FSCalendar

2. 手动安装

手动安装的方式比较简单,在中点击Download Zip,然后将FSCalendar文件夹拖进你的项目中,确保Copy items if needed被选中即可


FSCalendar使用介绍(一) - Hello World_第5张图片
点击download.png
FSCalendar使用介绍(一) - Hello World_第6张图片
选中Copy items if needed.png

这样就可以在项目中使用FSCalendar了:)。

  • 还有一种安装方式是通过Carthage,但是貌似用的人比较少,就不再赘述了。如果你的项目中用到了,就在Cartfile中添加:
github "WenchaoD/FSCalendar"

二、使用方法

方式1. 不使用Interface Builder

// ViewController.h

#import 
#import "FSCalendar.h"

@interface ViewController : UIViewController 

@property (weak, nonatomic) FSCalendar *calendar;

@end
// ViewController.m

#import "ViewController.h"

@implementation ViewController

- (void)loadView
{
    UIView *view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    view.backgroundColor = [UIColor groupTableViewBackgroundColor];
    self.view = view;
    
    FSCalendar *calendar = [[FSCalendar alloc] initWithFrame:CGRectMake(0, 64, view.frame.size.width, 300)];
    calendar.dataSource = self;
    calendar.delegate = self;
    calendar.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:calendar];
    self.calendar = calendar;
}

@end

效果图:


FSCalendar使用介绍(一) - Hello World_第7张图片

这里也许有会有读者对loadView当中做的事情存在疑惑,这里顺道提一句Apple开发文档的对于loadView和viewDidLoad的解释吧,原文链接:

FSCalendar使用介绍(一) - Hello World_第8张图片
loadView.png

综上:

  • 如果当前的VC不使用Interface Builder,请覆盖这个方法,反之如果使用了,则一定不能覆盖这个方法(you must not override this method)。
  • loadView这个方法负责创建当前VC的根视图的视图层级(view hierachy),在这里给self.view赋值(non-nil value),并且不要调用[super loadView];(Your custom implementation of this method should not call super);
  • viewDidLoad用来做额外的初始化(additional initialization);

方式2. 使用Interface Builder

直接拖动一个UIView的Object,将Custom Class 设置成为FSCalendar即可,这里需要将FSCalendar的dataSource和delegate属性连接到你的VC上,如下图所示:

FSCalendar使用介绍(一) - Hello World_第9张图片
Interface Builder

这里你会看到FSCalendar有了 Live rendering的效果(Carthage暂时不支持这种效果)。

Swift项目也可以使用FSCalendar,详见项目主页中的SwiftExample

项目主页:https://github.com/WenchaoD/FSCalendar

QQ支持群: 323861692
FSCalendar使用介绍(一) - Hello World_第10张图片

你可能感兴趣的:(FSCalendar使用介绍(一) - Hello World)