文档章节

FSCalendar

西单_夜未央
 西单_夜未央
发布于 2016/05/07 18:08
字数 620
阅读 344
收藏 1

周末没有妹子约,只能约电脑--------->>>>>>电脑才是一辈子的"情人" 

今天主要介绍一款第三方:FSCalendar 相信很多朋友在开发的过程中遇到日历的开发.

![ 4FBBB5F4-2843-4B26-B611-C2F4AEB9FCD26156c458-c27d-11e4-97da-52b424b45ec3.gif ](/uploads/attachments/534195/20160507/6372da7fabbfc53f2c501fe183923848.gif)

个人觉得FSCalendar这款日历插件很漂亮,在网上搜了一下,大家评价都很高,可是貌似没人对此做系统的介绍 

(也可能是因为太简单了,但对于一些刚接触的朋友来说系统介绍可以帮他们更加快速,高效开发)

下面是下载地址: https://github.com/f33chobits/FSCalendar

下载完成之后又个范例:

![ 4D24E4F2-6207-4F0A-B2CE-AFC9F32B5F4E.png ](/uploads/attachments/534195/20160507/adbbd5c5d7782505cdc00254d9a2f474.png)

下面先从最主要的代理入手:

calendar.dataSource = self;
calendar.delegate = self;
<FSCalendarDataSource,FSCalendarDelegate>

//这个能否选定日期

#pragma mark - <FSCalendarDelegate>
- (BOOL)calendar:(FSCalendar *)calendar shouldSelectDate:(NSDate *)date
{
    NSLog(@"should select date %@",[calendar stringFromDate:date format:@"yyyy/MM/dd"]);
    return YES;
}

//选择日期,最主要的方法

- (void)calendar:(FSCalendar *)calendar didSelectDate:(NSDate *)date
{
    NSLog(@"did select date %@",[calendar stringFromDate:date format:@"yyyy/MM/dd"]);
}
//翻页调用,比如说下个月
- (void)calendarCurrentPageDidChange:(FSCalendar *)calendar
{
    NSLog(@"did change to page %@",[calendar stringFromDate:calendar.currentPage format:@"MMMM YYYY"]);
}

//取消选择调用

- (void)calendar:(FSCalendar *)calendar didDeselectDate:(NSDate *)date
{
    NSLog(@"Did deselect date %@",[calendar stringFromDate:date]);
}
- (void)calendar:(FSCalendar *)calendar boundingRectWillChange:(CGRect)bounds animated:(BOOL)animated
{
    calendar.frame = (CGRect){calendar.frame.origin,bounds.size};
}
#pragma mark - <FSCalendarDataSource>

//下面的两个方法是限制你日期选择的方法

/

*
- (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar
{
    return [calendar tomorrowOfDate:[NSDate date]];
}
*/
/*
- (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar
{
    return [_calendar dateWithYear:2026 month:12 day:31];
}
*/
- (UIImage *)calendar:(FSCalendar *)calendar imageForDate:(NSDate *)date
{
    return self.images[[calendar stringFromDate:date format:@"yyyy/MM/dd"]];
}

下面是对样式,颜色...自定义

                _calendar.appearance.weekdayTextColor = FSCalendarStandardTitleTextColor;
                _calendar.appearance.headerTitleColor = FSCalendarStandardTitleTextColor;
                _calendar.appearance.eventColor = FSCalendarStandardEventDotColor;
                _calendar.appearance.selectionColor = FSCalendarStandardSelectionColor;
                _calendar.appearance.headerDateFormat = @"MMMM yyyy";
                _calendar.appearance.todayColor = FSCalendarStandardTodayColor;
                _calendar.appearance.cellShape = FSCalendarCellShapeCircle;
                _calendar.appearance.headerMinimumDissolvedAlpha = 0.2;
    
                _calendar.appearance.weekdayTextColor = [UIColor redColor];
                _calendar.appearance.headerTitleColor = [UIColor darkGrayColor];
                _calendar.appearance.eventColor = [UIColor greenColor];
                _calendar.appearance.selectionColor = [UIColor blueColor];
                _calendar.appearance.headerDateFormat = @"yyyy-MM";
                _calendar.appearance.todayColor = [UIColor redColor];
                _calendar.appearance.cellShape = FSCalendarCellShapeCircle;
                _calendar.appearance.headerMinimumDissolvedAlpha = 0.0;
                _calendar.appearance.weekdayTextColor = [UIColor redColor];
                _calendar.appearance.headerTitleColor = [UIColor redColor];
                _calendar.appearance.eventColor = [UIColor greenColor];
                _calendar.appearance.selectionColor = [UIColor blueColor];
                _calendar.appearance.headerDateFormat = @"yyyy/MM";
                _calendar.appearance.todayColor = [UIColor orangeColor];
                _calendar.appearance.cellShape = FSCalendarCellShapeRectangle;
                _calendar.appearance.headerMinimumDissolvedAlpha = 1.0;

当然支持横向和纵向

calendar.scrollDirection = FSCalendarScrollDirectionVertical;
calendar.scrollDirection = FSCalendarScrollDirectionHorizontal;
还支持农历:
    _lunarCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierChinese];
    _lunarCalendar.locale = [NSLocale localeWithLocaleIdentifier:@"zh-CN"];
    _lunarChars = @[@"初一",@"初二",@"初三",@"初四",@"初五",@"初六",@"初七",@"初八",@"初九",@"初十",@"十一",@"十二",@"十三",@"十四",@"十五",@"十六",@"十七",@"十八",@"十九",@"二十",@"二一",@"二二",@"二三",@"二四",@"二五",@"二六",@"二七",@"二八",@"二九",@"三十"];
- (NSString *)calendar:(FSCalendar *)calendar subtitleForDate:(NSDate *)date
{
    if (!_lunar) {
        return nil;
    }
    NSInteger day = [_lunarCalendar components:NSCalendarUnitDay fromDate:date].day;
    return _lunarChars[day-1];
}

还支持多选

calendar.allowsMultipleSelection = YES;

注意一个细节:在加载View,导航栏会遮挡日历

 FSCalendar *calendar = [[FSCalendar alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.navigationController.navigationBar.frame), view.bounds.size.width, height)];

就介绍这个多吧!应该够用,想继续研究的请自行下载FSCalendar


© 著作权归作者所有

上一篇: 插件安装
下一篇: EXRefresh
西单_夜未央
粉丝 0
博文 6
码字总数 3414
作品 0
海淀
程序员
私信 提问
DataFormatter关于CPU消耗测试

POCT日历页面初始化的阶段在iPhone6上,会有明显的卡顿情况,通过Instrument查看,发现耗时最长的是第三方控件FSCalendar,因为FSCalendar里面的内容未开放源码处理,所以暂时无法对其进行修...

sycasl
2017/11/14
0
0
33 款主宰 2017 iOS 开发的开源库

你好,iOS 开发者们!我的名字是 Pawel,是一名 iOS 独立开发者,也是 Enter Universe 的作者。 大概在两年前,我发布了 提升开发的 27 个 iOS 开源库。这篇文章是我的一个最佳纪录(用户好评...

王练
2017/06/13
4K
6
日历的第三方

FSCalendar https://github.com/WenchaoD/FSCalendar

娜一片蓝色星海
2016/12/16
55
0
iOS 日历组件--FSCalendar

FSCalendar 是带有子标题和平滑滚动的 iOS 日历视图,用 Objective-C 写成。性能优异、使用简单 支持水平、垂直翻页及全屏模式 支持周、月模式的平滑切换 支持展示农历等副标题 性能优异、使...

孔小菜
2015/03/13
2.2K
0
接好!GitHub上还有这十大开放源代码iOS库

  【IT168 资讯】iOS是当今世界上最流行的操作系统之一。iOS开发人员就需要构建应用程序来满足依赖于iOS设备用户的需求。然而,开发任务对开发新人来说必然是一项艰巨的任务。GitHub上这些...

it168网站
2017/12/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java中垃圾回收的方法有哪些?

引数计数法 应用于:微软的COM/ActionScrip3/Python等 对象没有被引用就会被回收,缺点是需要维护一个引用计算器 复制算法 年轻代中使用的Minor GC。 a.效率高,缺点:需要内存容量大,比较耗...

DustinChan
36分钟前
4
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
38分钟前
6
0
初识Java

Java语言的优势: 1、跨平台(所谓跨平台性,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。主要是由jvm所决定) 2.、面向对象(用老师的一句话“一切皆对象”后面会用详细...

Carina_猪
昨天
5
0
Java描述设计模式(09):装饰模式

本文源码:GitHub·点这里 || GitEE·点这里 一、生活场景 1、场景描述 孙悟空有七十二般变化,他的每一种变化都给他带来一种附加的本领。他变成鱼儿时,就可以到水里游泳;他变成鸟儿时,就...

知了一笑
昨天
4
0
聊聊nacos的HttpHealthCheckProcessor

序 本文主要研究一下nacos的HttpHealthCheckProcessor HealthCheckProcessor nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HealthCheckProcessor.java public in......

go4it
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部