Showing preview only (849K chars total). Download the full file or copy to clipboard to get everything.
Repository: WenchaoD/FSCalendar
Branch: master
Commit: df53e79c324e
Files: 148
Total size: 799.1 KB
Directory structure:
gitextract_xbca8hux/
├── .github/
│ └── ISSUE_TEMPLATE.md
├── .gitignore
├── .travis.yml
├── CHANGELOG.md
├── Example-Objc/
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Base.lproj/
│ │ └── Main.storyboard
│ ├── ButtonsViewController.h
│ ├── ButtonsViewController.m
│ ├── CalendarConfigViewController.h
│ ├── CalendarConfigViewController.m
│ ├── DIYCalendarCell.h
│ ├── DIYCalendarCell.m
│ ├── DIYExampleViewController.h
│ ├── DIYExampleViewController.m
│ ├── DelegateAppearanceViewController.h
│ ├── DelegateAppearanceViewController.m
│ ├── FSCalendar.xcodeproj/
│ │ ├── project.pbxproj
│ │ ├── project.xcworkspace/
│ │ │ ├── contents.xcworkspacedata
│ │ │ └── xcshareddata/
│ │ │ └── IDEWorkspaceChecks.plist
│ │ └── xcshareddata/
│ │ ├── xcbaselines/
│ │ │ └── 30671DC61D6D574C00BCFC4E.xcbaseline/
│ │ │ ├── 3003B86B-B981-4064-9C85-E799A3B13220.plist
│ │ │ ├── 621090AF-4CF3-4245-99AD-46AD956ACA82.plist
│ │ │ ├── A165CA85-3EFC-487B-954E-5AD1DC2EB21D.plist
│ │ │ └── Info.plist
│ │ └── xcschemes/
│ │ ├── FSCalendar.xcscheme
│ │ └── FSCalendarExample.xcscheme
│ ├── FSCalendarExampleUITests/
│ │ ├── FSCalendarExampleUITests.m
│ │ └── Info.plist
│ ├── FSCalendarScopeExampleViewController.h
│ ├── FSCalendarScopeExampleViewController.m
│ ├── FSCalendarTests/
│ │ ├── FSCalendarExtensionTest.m
│ │ ├── FSCalendarTests.m
│ │ └── Info.plist
│ ├── FSTableViewController.h
│ ├── FSTableViewController.m
│ ├── FullScreenExampleViewController.h
│ ├── FullScreenExampleViewController.m
│ ├── HidePlaceholderViewController.h
│ ├── HidePlaceholderViewController.m
│ ├── Images.xcassets/
│ │ ├── AppIcon.appiconset/
│ │ │ └── Contents.json
│ │ ├── Contents.json
│ │ ├── LaunchImage.launchimage/
│ │ │ └── Contents.json
│ │ ├── circle.imageset/
│ │ │ └── Contents.json
│ │ ├── fire.imageset/
│ │ │ └── Contents.json
│ │ ├── icon_cat.imageset/
│ │ │ └── Contents.json
│ │ ├── icon_footprint.imageset/
│ │ │ └── Contents.json
│ │ ├── icon_next.imageset/
│ │ │ └── Contents.json
│ │ ├── icon_prev.imageset/
│ │ │ └── Contents.json
│ │ └── icon_setting.imageset/
│ │ └── Contents.json
│ ├── Info.plist
│ ├── LaunchScreen.xib
│ ├── LoadViewExampleViewController.h
│ ├── LoadViewExampleViewController.m
│ ├── LunarFormatter.h
│ ├── LunarFormatter.m
│ ├── RangePickerCell.h
│ ├── RangePickerCell.m
│ ├── RangePickerViewController.h
│ ├── RangePickerViewController.m
│ ├── StoryboardExampleViewController.h
│ ├── StoryboardExampleViewController.m
│ └── main.m
├── Example-Swift/
│ ├── FSCalendarSwiftExample/
│ │ ├── AppDelegate.swift
│ │ ├── Base.lproj/
│ │ │ ├── LaunchScreen.xib
│ │ │ └── Main.storyboard
│ │ ├── CalendarConfigViewController.swift
│ │ ├── DIYCalendarCell.swift
│ │ ├── DIYExampleViewController.swift
│ │ ├── DelegateAppearanceViewController.swift
│ │ ├── FSCalendarScopeViewController.swift
│ │ ├── Images.xcassets/
│ │ │ ├── AppIcon.appiconset/
│ │ │ │ └── Contents.json
│ │ │ ├── Contents.json
│ │ │ ├── LaunchImage.launchimage/
│ │ │ │ └── Contents.json
│ │ │ ├── circle.imageset/
│ │ │ │ └── Contents.json
│ │ │ ├── icon_cat.imageset/
│ │ │ │ └── Contents.json
│ │ │ └── icon_setting.imageset/
│ │ │ └── Contents.json
│ │ ├── Info.plist
│ │ ├── InterfaceBuilderViewController.swift
│ │ ├── LoadViewExampleViewController.swift
│ │ ├── LunarFormatter.swift
│ │ ├── Objc-Bridge-Header.h
│ │ └── TableViewController.swift
│ ├── FSCalendarSwiftExample.xcodeproj/
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace/
│ │ ├── contents.xcworkspacedata
│ │ └── xcshareddata/
│ │ └── IDEWorkspaceChecks.plist
│ └── FSCalendarSwiftExampleUITests/
│ ├── FSCalendarSwiftExampleUITests.swift
│ ├── Info.plist
│ └── Objc-Bridge-Header.h
├── Example-TodayExtension/
│ ├── Example-TodayExtension.xcodeproj/
│ │ ├── project.pbxproj
│ │ └── project.xcworkspace/
│ │ └── contents.xcworkspacedata
│ ├── TodayExtension/
│ │ ├── Base.lproj/
│ │ │ └── MainInterface.storyboard
│ │ ├── Image.xcassets/
│ │ │ ├── Contents.json
│ │ │ ├── circle_next.imageset/
│ │ │ │ └── Contents.json
│ │ │ └── circle_prev.imageset/
│ │ │ └── Contents.json
│ │ ├── Info.plist
│ │ ├── TodayViewController.h
│ │ └── TodayViewController.m
│ └── TodayExtensionExample/
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Assets.xcassets/
│ │ ├── AppIcon.appiconset/
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── Base.lproj/
│ │ ├── LaunchScreen.storyboard
│ │ └── Main.storyboard
│ ├── Info.plist
│ ├── ViewController.h
│ ├── ViewController.m
│ └── main.m
├── Example-TodayExtension2/
│ └── Example-TodayExtension.xcodeproj/
│ └── project.pbxproj
├── FSCalendar/
│ ├── FSCalendar.h
│ ├── FSCalendar.m
│ ├── FSCalendarAppearance.h
│ ├── FSCalendarAppearance.m
│ ├── FSCalendarCalculator.h
│ ├── FSCalendarCalculator.m
│ ├── FSCalendarCell.h
│ ├── FSCalendarCell.m
│ ├── FSCalendarCollectionView.h
│ ├── FSCalendarCollectionView.m
│ ├── FSCalendarCollectionViewLayout.h
│ ├── FSCalendarCollectionViewLayout.m
│ ├── FSCalendarConstants.h
│ ├── FSCalendarConstants.m
│ ├── FSCalendarDelegationFactory.h
│ ├── FSCalendarDelegationFactory.m
│ ├── FSCalendarDelegationProxy.h
│ ├── FSCalendarDelegationProxy.m
│ ├── FSCalendarDynamicHeader.h
│ ├── FSCalendarExtensions.h
│ ├── FSCalendarExtensions.m
│ ├── FSCalendarHeaderView.h
│ ├── FSCalendarHeaderView.m
│ ├── FSCalendarSeparatorDecorationView.h
│ ├── FSCalendarSeparatorDecorationView.m
│ ├── FSCalendarStickyHeader.h
│ ├── FSCalendarStickyHeader.m
│ ├── FSCalendarTransitionCoordinator.h
│ ├── FSCalendarTransitionCoordinator.m
│ ├── FSCalendarWeekdayView.h
│ ├── FSCalendarWeekdayView.m
│ ├── Info.plist
│ └── include/
│ └── module.modulemap
├── FSCalendar.podspec
├── FSCalendarExamples.xcworkspace/
│ ├── contents.xcworkspacedata
│ └── xcshareddata/
│ └── IDEWorkspaceChecks.plist
├── LICENSE
├── MOREUSAGE.md
├── Package.swift
└── README.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
## The following informations are requested in a bug report
* A brief bug description.
* Stack trace.
* Integration method.`(manually/cocoapods/carthage)`
* Full steps to reproduce.
* Device modal and iOS version. `e.g. iPhone 6s iOS9.1`
* Xcode version. `e.g. Xcode 8.1`
* FSCalendar version. `e.g. FSCalenda 2.5.1`
* Does this happen in the demo project? Which one? Or a link to another demo project.
## 如果在使用过程中遇到问题,请提供以下信息以便于尽快将问题修复
* 简单描述一下问题。
* 控制台输出的堆栈跟踪(如果有的话)。
* 安装方式. `如手动安装、cocoapods安装、或者通过carthage安装`。
* 能够重现此问题的完整步骤。
* 设备型号及版本。 `例如: iPhone6s iOS9.1`
* 使用的Xcode版本。 `例如: Xcode8.1`
* FSCalendar版本. `例如: FSCalendar 2.5.1`
* 是否能在demo中重现,以及在哪个demo中重现?或者附加一个重现问题的demo链接。
================================================
FILE: .gitignore
================================================
# OS X
.DS_Store
# Xcode
build/
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata
*.xccheckout
profile
*.moved-aside
DerivedData
*.hmap
*.ipa
*.idea
.swiftpm/
# Bundler
.bundle
Pods/
Carthage/Checkouts
Carthage/Build
fastlane/report.xml
fastlane/screenshots
Index/
================================================
FILE: .travis.yml
================================================
language: objective-c
osx_image: xcode9
script:
- xcodebuild -project Example-Objc/FSCalendar.xcodeproj -sdk iphonesimulator -alltargets
- xcodebuild -project Example-Swift/FSCalendarSwiftExample.xcodeproj -sdk iphonesimulator -alltargets
- xcodebuild -project Example-TodayExtension/Example-TodayExtension.xcodeproj -sdk iphonesimulator -alltargets
================================================
FILE: CHANGELOG.md
================================================
# Change Log
## [2.7.4](https://github.com/WenchaoD/FSCalendar/tree/2.7.4) (2017-03-15)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.7.3...2.7.4)
**Closed issues:**
- 自定义cell,快速滚动页面时候,可能出现崩溃 [\#621](https://github.com/WenchaoD/FSCalendar/issues/621)
- Incorrect NSDate returned [\#613](https://github.com/WenchaoD/FSCalendar/issues/613)
- Pan Gesture causing crashing [\#612](https://github.com/WenchaoD/FSCalendar/issues/612)
- 未检查代理是否实现了协议方法就调用,导致找不到方法 [\#611](https://github.com/WenchaoD/FSCalendar/issues/611)
- Is it possible to deselect the date in FScalendar other than user's deselection? [\#610](https://github.com/WenchaoD/FSCalendar/issues/610)
- is it possible to select dates in the range in recent version of fscalender? [\#609](https://github.com/WenchaoD/FSCalendar/issues/609)
- CFBundleExecutable key [\#607](https://github.com/WenchaoD/FSCalendar/issues/607)
- FSCalendar crash most of the time when minimumDate & maximumDate is set Today and selectDate is also Today [\#604](https://github.com/WenchaoD/FSCalendar/issues/604)
- a [\#603](https://github.com/WenchaoD/FSCalendar/issues/603)
- Today date does not update after changing device date [\#600](https://github.com/WenchaoD/FSCalendar/issues/600)
- 外观修改 [\#599](https://github.com/WenchaoD/FSCalendar/issues/599)
- Reloading of calendar view crashing app. [\#597](https://github.com/WenchaoD/FSCalendar/issues/597)
## [2.7.3](https://github.com/WenchaoD/FSCalendar/tree/2.7.3) (2017-03-03)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.7.2...2.7.3)
**Closed issues:**
- is there a faster way if i want to go to a specific year [\#591](https://github.com/WenchaoD/FSCalendar/issues/591)
- Reload issue in FSCalendar [\#587](https://github.com/WenchaoD/FSCalendar/issues/587)
- Calendar crashes when minimumDate & maximumDate is set [\#575](https://github.com/WenchaoD/FSCalendar/issues/575)
- disable some date [\#561](https://github.com/WenchaoD/FSCalendar/issues/561)
- SwiftExample app: First row of days starts with the last week of the last month in some cases [\#548](https://github.com/WenchaoD/FSCalendar/issues/548)
- 预给了日期范围后,重值日期范围有问题 [\#545](https://github.com/WenchaoD/FSCalendar/issues/545)
- 您好大神,问您一下关于headerTitle的问题 [\#536](https://github.com/WenchaoD/FSCalendar/issues/536)
- Accessibility / VoiceOver reading order should be left to right \(or numeric order\), not top to bottom [\#466](https://github.com/WenchaoD/FSCalendar/issues/466)
**Merged pull requests:**
- Make selectedDate nullable [\#581](https://github.com/WenchaoD/FSCalendar/pull/581) ([roark31337](https://github.com/roark31337))
## [2.7.2](https://github.com/WenchaoD/FSCalendar/tree/2.7.2) (2017-02-16)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.7.1...2.7.2)
**Closed issues:**
- App crashing when implement delegate methods [\#590](https://github.com/WenchaoD/FSCalendar/issues/590)
- Calendar only showing Sundays [\#589](https://github.com/WenchaoD/FSCalendar/issues/589)
- 你好,请问下如何自定义Header? [\#588](https://github.com/WenchaoD/FSCalendar/issues/588)
- Calendar not reloading min/max dates when calling reload data. [\#585](https://github.com/WenchaoD/FSCalendar/issues/585)
- Incorrect date gets selected on using the default select method [\#580](https://github.com/WenchaoD/FSCalendar/issues/580)
- 日历底部线条怎么隐藏? [\#579](https://github.com/WenchaoD/FSCalendar/issues/579)
- Weird crash [\#574](https://github.com/WenchaoD/FSCalendar/issues/574)
- Scroll direction changes from horizontal to vertical when changing from week view to month view using gestures [\#573](https://github.com/WenchaoD/FSCalendar/issues/573)
- Use of undeclared type 'FSCalendarMonthPosition' [\#568](https://github.com/WenchaoD/FSCalendar/issues/568)
- 重用性 [\#562](https://github.com/WenchaoD/FSCalendar/issues/562)
- 你好!我怎么修改头部的日期显示的格式呢?另外我怎么修改底部线条的隐藏与否呢? [\#556](https://github.com/WenchaoD/FSCalendar/issues/556)
- Version 2.7.0 is bugged [\#549](https://github.com/WenchaoD/FSCalendar/issues/549)
- Interface BuilderDesignables build failed [\#543](https://github.com/WenchaoD/FSCalendar/issues/543)
- error: IB Designables: Failed to update auto layout status: The agent crashed [\#538](https://github.com/WenchaoD/FSCalendar/issues/538)
- Any way to increase the size of event indicator? [\#525](https://github.com/WenchaoD/FSCalendar/issues/525)
- The week scope is not reset when returning to week view from a partial drag [\#473](https://github.com/WenchaoD/FSCalendar/issues/473)
## [2.7.1](https://github.com/WenchaoD/FSCalendar/tree/2.7.1) (2017-02-02)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.7.0...2.7.1)
**Closed issues:**
- Calendar showing previous month for current page, but current page in stack has the correct month. [\#566](https://github.com/WenchaoD/FSCalendar/issues/566)
- Storyboard not update interface when change Attributes Inspector [\#564](https://github.com/WenchaoD/FSCalendar/issues/564)
- hello , first thing this project is awesome ,, but i have on issue . [\#560](https://github.com/WenchaoD/FSCalendar/issues/560)
- Vertical Line [\#557](https://github.com/WenchaoD/FSCalendar/issues/557)
- 你好 我想请问有没有办法把日期和星期显示强制设置成英文 [\#552](https://github.com/WenchaoD/FSCalendar/issues/552)
- h bomb [\#550](https://github.com/WenchaoD/FSCalendar/issues/550)
- 展示bug,31天的日期只展示到28号 [\#547](https://github.com/WenchaoD/FSCalendar/issues/547)
- SwiftExample app does not support multitasking [\#546](https://github.com/WenchaoD/FSCalendar/issues/546)
- Calendar disrupts on orientation change [\#468](https://github.com/WenchaoD/FSCalendar/issues/468)
**Merged pull requests:**
- default values in reloadData method [\#570](https://github.com/WenchaoD/FSCalendar/pull/570) ([mastohhh](https://github.com/mastohhh))
## [2.7.0](https://github.com/WenchaoD/FSCalendar/tree/2.7.0) (2017-01-17)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.6.0...2.7.0)
**Implemented enhancements:**
- 使用指导 [\#496](https://github.com/WenchaoD/FSCalendar/issues/496)
**Closed issues:**
- Pod version \(2.6.0\) crashes on handleScopeGesture [\#540](https://github.com/WenchaoD/FSCalendar/issues/540)
- 大神你好想请教下关于点击灰色区域日期的问题 [\#535](https://github.com/WenchaoD/FSCalendar/issues/535)
- 您好,我用您这个框架 用pod管理导入的库为什么和下的demo,版本不一样呢,用pod管理的版本是1.7.2,有好多属性是你的demo中有,但是我导入的里面就没有那些属性呢 [\#534](https://github.com/WenchaoD/FSCalendar/issues/534)
- 在 Xcode8.2 运行,用 xib 拖进去 view 设置类为FSCalendar看不到 [\#533](https://github.com/WenchaoD/FSCalendar/issues/533)
- Getting previous date in method didSelect date [\#531](https://github.com/WenchaoD/FSCalendar/issues/531)
- -minimumDateForCalendar: bug [\#529](https://github.com/WenchaoD/FSCalendar/issues/529)
- 使用问题 [\#527](https://github.com/WenchaoD/FSCalendar/issues/527)
- When I select a day the event indicator disappear, why? How to solve? [\#526](https://github.com/WenchaoD/FSCalendar/issues/526)
- Next and previous button on header title [\#523](https://github.com/WenchaoD/FSCalendar/issues/523)
- Feature Request: event on consecutive days [\#522](https://github.com/WenchaoD/FSCalendar/issues/522)
- Delegate / DataSource || Race Condition ? [\#518](https://github.com/WenchaoD/FSCalendar/issues/518)
- Request: A way to add more than one subtitleFor [\#517](https://github.com/WenchaoD/FSCalendar/issues/517)
- Can't change calendar today date [\#514](https://github.com/WenchaoD/FSCalendar/issues/514)
- 如何获知是向左还是向右滑动? [\#513](https://github.com/WenchaoD/FSCalendar/issues/513)
- centerForDate [\#512](https://github.com/WenchaoD/FSCalendar/issues/512)
- Interface builder - FSCalendar - Designables - Build Failed [\#511](https://github.com/WenchaoD/FSCalendar/issues/511)
- Different color for event dots [\#509](https://github.com/WenchaoD/FSCalendar/issues/509)
- How to get Current year, current month & number of days in a month ? [\#508](https://github.com/WenchaoD/FSCalendar/issues/508)
- How to change header background color? [\#507](https://github.com/WenchaoD/FSCalendar/issues/507)
- Is there a way to set color of disabled day [\#504](https://github.com/WenchaoD/FSCalendar/issues/504)
- How do you get the visible date range in calendar [\#503](https://github.com/WenchaoD/FSCalendar/issues/503)
- Change firstWeekday shows wrong day [\#502](https://github.com/WenchaoD/FSCalendar/issues/502)
- Custom cell can't be casted when using maximumDate [\#497](https://github.com/WenchaoD/FSCalendar/issues/497)
- minimumDateForCalendar not working [\#495](https://github.com/WenchaoD/FSCalendar/issues/495)
- 3D Touch Peek and Pop [\#493](https://github.com/WenchaoD/FSCalendar/issues/493)
- Date number height is shortened [\#486](https://github.com/WenchaoD/FSCalendar/issues/486)
- cell和cell之间会有一个间隔 [\#483](https://github.com/WenchaoD/FSCalendar/issues/483)
**Merged pull requests:**
- Removing if-clause that makes impossible to change today date. [\#515](https://github.com/WenchaoD/FSCalendar/pull/515) ([kallahir](https://github.com/kallahir))
## [2.6.0](https://github.com/WenchaoD/FSCalendar/tree/2.6.0) (2016-11-29)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.5.1...2.6.0)
**Closed issues:**
- How to make Next and previous months Button visible ? [\#500](https://github.com/WenchaoD/FSCalendar/issues/500)
- How to hide the column and row separator in FSCalendar [\#499](https://github.com/WenchaoD/FSCalendar/issues/499)
## [2.5.1](https://github.com/WenchaoD/FSCalendar/tree/2.5.1) (2016-11-23)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.5.0...2.5.1)
**Implemented enhancements:**
- Create A 3D Touch when date pressed in calender [\#449](https://github.com/WenchaoD/FSCalendar/issues/449)
- 期望新增手势拖拽进行选择时间段功能。。。 [\#435](https://github.com/WenchaoD/FSCalendar/issues/435)
**Closed issues:**
- minimumDateForCalendar [\#494](https://github.com/WenchaoD/FSCalendar/issues/494)
- Monster warlord [\#491](https://github.com/WenchaoD/FSCalendar/issues/491)
- Monster warlord [\#490](https://github.com/WenchaoD/FSCalendar/issues/490)
- Monster warlord [\#489](https://github.com/WenchaoD/FSCalendar/issues/489)
- In week view some dates are missing [\#488](https://github.com/WenchaoD/FSCalendar/issues/488)
- Space between month tag and days, after touching the calendar the days move up to it's right place [\#485](https://github.com/WenchaoD/FSCalendar/issues/485)
- Custom cell can't be casted when using minimumDate/maximumDate [\#484](https://github.com/WenchaoD/FSCalendar/issues/484)
- Update library issue [\#482](https://github.com/WenchaoD/FSCalendar/issues/482)
- Set minimumDate and maximumDate dynamic [\#481](https://github.com/WenchaoD/FSCalendar/issues/481)
- Today is already selected.How to disable today showing selected. [\#480](https://github.com/WenchaoD/FSCalendar/issues/480)
- charthage build error: no shared framework schemes [\#479](https://github.com/WenchaoD/FSCalendar/issues/479)
- Set Week Days Label IN Upper Case [\#478](https://github.com/WenchaoD/FSCalendar/issues/478)
- Change Month causes select two dates at same view. [\#477](https://github.com/WenchaoD/FSCalendar/issues/477)
- Crashed on iphone 5 and ios 10 [\#476](https://github.com/WenchaoD/FSCalendar/issues/476)
- Calling `reloadData\(\)` in `didSelectDate\(\)` causes circle image to flicker. [\#475](https://github.com/WenchaoD/FSCalendar/issues/475)
- Is it possible to display 2 weeks instead of 1 week? [\#470](https://github.com/WenchaoD/FSCalendar/issues/470)
- Calendar orientation is not working properly in some projects [\#464](https://github.com/WenchaoD/FSCalendar/issues/464)
## [2.5.0](https://github.com/WenchaoD/FSCalendar/tree/2.5.0) (2016-11-09)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.4.0...2.5.0)
**Implemented enhancements:**
- text color of Sat and Sun [\#437](https://github.com/WenchaoD/FSCalendar/issues/437)
- Is it possible create Calendar View like Activity app [\#366](https://github.com/WenchaoD/FSCalendar/issues/366)
- Disable placeholders selection backgoundColor in date range between months [\#351](https://github.com/WenchaoD/FSCalendar/issues/351)
- How to remove events of next month showing in current month calender [\#328](https://github.com/WenchaoD/FSCalendar/issues/328)
- Different font for selected and current date [\#281](https://github.com/WenchaoD/FSCalendar/issues/281)
- How to put line on row of week ? [\#185](https://github.com/WenchaoD/FSCalendar/issues/185)
**Closed issues:**
- White Color Border Showing In Top and Bottom Of View In Which FSCalender Attached [\#471](https://github.com/WenchaoD/FSCalendar/issues/471)
- how to add image in multiple date when view load? [\#469](https://github.com/WenchaoD/FSCalendar/issues/469)
- seletectDate does not call didSelectDate [\#467](https://github.com/WenchaoD/FSCalendar/issues/467)
- minimumDateForCalendar crash @ 2.4.0 [\#465](https://github.com/WenchaoD/FSCalendar/issues/465)
- Two days can be selected after first or second Saturday is first selected [\#463](https://github.com/WenchaoD/FSCalendar/issues/463)
- Overlaping events [\#462](https://github.com/WenchaoD/FSCalendar/issues/462)
- Error in Selected date [\#459](https://github.com/WenchaoD/FSCalendar/issues/459)
- Calendar Date Range background Between today date and selected end date [\#458](https://github.com/WenchaoD/FSCalendar/issues/458)
- Month Scrolling [\#457](https://github.com/WenchaoD/FSCalendar/issues/457)
- Fatal Exception: Crash on iPhone 5 c [\#456](https://github.com/WenchaoD/FSCalendar/issues/456)
- How to stop scrolling animation ? [\#455](https://github.com/WenchaoD/FSCalendar/issues/455)
- How to prevent calendar to switch from month view to week view? [\#454](https://github.com/WenchaoD/FSCalendar/issues/454)
- Appearance Delegate not called [\#452](https://github.com/WenchaoD/FSCalendar/issues/452)
- Have a migration project to swift3 plan? [\#451](https://github.com/WenchaoD/FSCalendar/issues/451)
- Fatal Exception: FSCalendar date out of bounds exception. [\#450](https://github.com/WenchaoD/FSCalendar/issues/450)
- Rename FSCalendarConstance to FSCalendarConstants [\#448](https://github.com/WenchaoD/FSCalendar/issues/448)
- Header disappearing when max month is reached [\#447](https://github.com/WenchaoD/FSCalendar/issues/447)
- Is "Imageoffset" property has some problem? [\#445](https://github.com/WenchaoD/FSCalendar/issues/445)
- Property 'prefetchingEnabled' not found on object of type 'FSCalendarCollectionView \*' [\#444](https://github.com/WenchaoD/FSCalendar/issues/444)
- Image offset ignored in week scope [\#443](https://github.com/WenchaoD/FSCalendar/issues/443)
- minimumDate iOS10 [\#432](https://github.com/WenchaoD/FSCalendar/issues/432)
- "Invisible sticky header" problem on calendar with vertical scrolling [\#431](https://github.com/WenchaoD/FSCalendar/issues/431)
- Delegate method calendar eventColorForDate not called. [\#423](https://github.com/WenchaoD/FSCalendar/issues/423)
- force reload calendar [\#326](https://github.com/WenchaoD/FSCalendar/issues/326)
## [2.4.0](https://github.com/WenchaoD/FSCalendar/tree/2.4.0) (2016-10-12)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.3.3...2.4.0)
**Implemented enhancements:**
- UI小建议 [\#410](https://github.com/WenchaoD/FSCalendar/issues/410)
- Cell selection style [\#370](https://github.com/WenchaoD/FSCalendar/issues/370)
**Closed issues:**
- Scope change animating from center [\#446](https://github.com/WenchaoD/FSCalendar/issues/446)
- How to have events with different color indicator on calendar? [\#442](https://github.com/WenchaoD/FSCalendar/issues/442)
- Can I have different background color for each selected date? [\#441](https://github.com/WenchaoD/FSCalendar/issues/441)
- How can i get current time with selected date? [\#440](https://github.com/WenchaoD/FSCalendar/issues/440)
- How to set day as "selected"? [\#439](https://github.com/WenchaoD/FSCalendar/issues/439)
- Todays date shows yesterday when selected. [\#438](https://github.com/WenchaoD/FSCalendar/issues/438)
- want to show date from first day of the month [\#433](https://github.com/WenchaoD/FSCalendar/issues/433)
- headerTitleFont appearance doesn't seem to be working [\#430](https://github.com/WenchaoD/FSCalendar/issues/430)
- When view load set a anydate as selected [\#429](https://github.com/WenchaoD/FSCalendar/issues/429)
- Dynamic Today Extension Example ui issue in iOS 10 [\#427](https://github.com/WenchaoD/FSCalendar/issues/427)
- Show two months [\#426](https://github.com/WenchaoD/FSCalendar/issues/426)
- is it fully compatible with swift 3 ? [\#425](https://github.com/WenchaoD/FSCalendar/issues/425)
- Timezone support [\#424](https://github.com/WenchaoD/FSCalendar/issues/424)
- Hi, [\#419](https://github.com/WenchaoD/FSCalendar/issues/419)
- Today is always 1 day ahead [\#417](https://github.com/WenchaoD/FSCalendar/issues/417)
- timezone issue @ FSCalendar ~\>2.3.1 [\#416](https://github.com/WenchaoD/FSCalendar/issues/416)
## [2.3.3](https://github.com/WenchaoD/FSCalendar/tree/2.3.3) (2016-09-10)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.3.2...2.3.3)
**Closed issues:**
- Any way to hide on vertical mode the same days at next month? [\#415](https://github.com/WenchaoD/FSCalendar/issues/415)
- Put UIImageView on particular date. [\#414](https://github.com/WenchaoD/FSCalendar/issues/414)
- 自定义日历高度 [\#412](https://github.com/WenchaoD/FSCalendar/issues/412)
- Rotat issue [\#408](https://github.com/WenchaoD/FSCalendar/issues/408)
- 在滑动的时候可能会出现 CGRectGetHeight\(self.pendingAttributes.targetBounds\) == CGRectGetHeight\(self.pendingAttributes.sourceBounds\) [\#405](https://github.com/WenchaoD/FSCalendar/issues/405)
- 在真机中,当展示的是周的时候. 两个手指重复向上滑动的时候会引起界面异常 [\#403](https://github.com/WenchaoD/FSCalendar/issues/403)
- Today in Swift [\#402](https://github.com/WenchaoD/FSCalendar/issues/402)
## [2.3.2](https://github.com/WenchaoD/FSCalendar/tree/2.3.2) (2016-09-10)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.3.1...2.3.2)
**Closed issues:**
- Missing data on iOS 9 [\#413](https://github.com/WenchaoD/FSCalendar/issues/413)
- delay 1 day [\#411](https://github.com/WenchaoD/FSCalendar/issues/411)
- TitleDefaultColorForDate Delegate Quickly called before web service Implementing and Want to Change colors for the dates from array? [\#409](https://github.com/WenchaoD/FSCalendar/issues/409)
- Error with min version [\#407](https://github.com/WenchaoD/FSCalendar/issues/407)
- FSCalendarScope is a C11 feature [\#406](https://github.com/WenchaoD/FSCalendar/issues/406)
- How to determine current calendar height [\#404](https://github.com/WenchaoD/FSCalendar/issues/404)
- How to set the height of row? [\#401](https://github.com/WenchaoD/FSCalendar/issues/401)
- How i can repeat event? like every day, month, year? [\#400](https://github.com/WenchaoD/FSCalendar/issues/400)
- How I can select all sunday with "selectDate"? [\#399](https://github.com/WenchaoD/FSCalendar/issues/399)
- 当我选择7月1号. 然后收起日历.变成只显示周的时候. 月份会变成6月 [\#398](https://github.com/WenchaoD/FSCalendar/issues/398)
- Changing event color crash [\#392](https://github.com/WenchaoD/FSCalendar/issues/392)
- Can you pass consistent dates to the date parameters in the delegate methods? [\#386](https://github.com/WenchaoD/FSCalendar/issues/386)
- 三个自定义需求请问如何实现? [\#371](https://github.com/WenchaoD/FSCalendar/issues/371)
## [2.3.1](https://github.com/WenchaoD/FSCalendar/tree/2.3.1) (2016-08-29)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.3.0...2.3.1)
**Closed issues:**
- Can we add dot with some text in Calendar view & how to reload calendar view ? [\#397](https://github.com/WenchaoD/FSCalendar/issues/397)
- 有没有出 Swift 版的计划 [\#396](https://github.com/WenchaoD/FSCalendar/issues/396)
- Height issue with XCode 8 iOS 10 Swift 2.x [\#395](https://github.com/WenchaoD/FSCalendar/issues/395)
- \[bug\] reloadData wil not reload header title [\#394](https://github.com/WenchaoD/FSCalendar/issues/394)
- 日期选择的错误 [\#390](https://github.com/WenchaoD/FSCalendar/issues/390)
- Collapse the calander [\#389](https://github.com/WenchaoD/FSCalendar/issues/389)
- \[calendar reloadData\] 后如何不回自动滚回当前日期? [\#388](https://github.com/WenchaoD/FSCalendar/issues/388)
- 如何做到,多选,只能选择第一个选择日期后的5天? [\#387](https://github.com/WenchaoD/FSCalendar/issues/387)
- Full day circle as event indicator [\#383](https://github.com/WenchaoD/FSCalendar/issues/383)
- 有支持农历吗 [\#382](https://github.com/WenchaoD/FSCalendar/issues/382)
- Calendar layout is broken [\#375](https://github.com/WenchaoD/FSCalendar/issues/375)
**Merged pull requests:**
- Merge branch 'development' [\#384](https://github.com/WenchaoD/FSCalendar/pull/384) ([maplestoryLWG](https://github.com/maplestoryLWG))
## [2.3.0](https://github.com/WenchaoD/FSCalendar/tree/2.3.0) (2016-08-11)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.2.0...2.3.0)
**Closed issues:**
- didSelectDate should get called if i call selectDate\(\) [\#381](https://github.com/WenchaoD/FSCalendar/issues/381)
- day circle radius is small [\#380](https://github.com/WenchaoD/FSCalendar/issues/380)
- Error in future. [\#379](https://github.com/WenchaoD/FSCalendar/issues/379)
- Delegate call when scope changes [\#378](https://github.com/WenchaoD/FSCalendar/issues/378)
- 给日历添加事件后,如果通过点击下个的日期切换月份并且让日历变成按周显示的模式,点中的日期如果添加了事件,程序会出现崩溃的情况! [\#377](https://github.com/WenchaoD/FSCalendar/issues/377)
- Enable gestures to change calendar scope. [\#374](https://github.com/WenchaoD/FSCalendar/issues/374)
- 不停的切换月和周 两种显示模式,上面显示的月份一直在减小 [\#373](https://github.com/WenchaoD/FSCalendar/issues/373)
- Is it possible to show only the days of the current month? [\#372](https://github.com/WenchaoD/FSCalendar/issues/372)
- Presenting the calendar in a modal view controller [\#369](https://github.com/WenchaoD/FSCalendar/issues/369)
- Is it possible to get calendar cell size ? [\#368](https://github.com/WenchaoD/FSCalendar/issues/368)
- After updating to 2.2.0, I can't call the methods in the NSDate category anymore. Can you add them back? [\#365](https://github.com/WenchaoD/FSCalendar/issues/365)
- Change position of event dot [\#364](https://github.com/WenchaoD/FSCalendar/issues/364)
- There is something wrong with the interface shows when I reload calendar view. [\#363](https://github.com/WenchaoD/FSCalendar/issues/363)
- How can we remove Background color for specific dates? [\#362](https://github.com/WenchaoD/FSCalendar/issues/362)
- itouch 6黑屏无法进入主界面 [\#361](https://github.com/WenchaoD/FSCalendar/issues/361)
- I want to remove Next Month Event Color [\#360](https://github.com/WenchaoD/FSCalendar/issues/360)
- Is it possible to stop scroll in direction of future month? [\#359](https://github.com/WenchaoD/FSCalendar/issues/359)
- Border width size is different for some rows. [\#358](https://github.com/WenchaoD/FSCalendar/issues/358)
- disable tap gesture on placeholder [\#357](https://github.com/WenchaoD/FSCalendar/issues/357)
- Can you make the size of the dot proportionate to the size of the collection view cell? [\#356](https://github.com/WenchaoD/FSCalendar/issues/356)
- Please See At My Requirement - Change Event Background Color [\#355](https://github.com/WenchaoD/FSCalendar/issues/355)
- Has Event For Date is not call - How can i recall this method [\#354](https://github.com/WenchaoD/FSCalendar/issues/354)
- Multiple Selection Colours? [\#353](https://github.com/WenchaoD/FSCalendar/issues/353)
- Layout is not working \(Swift 2.2, Xcode 7.3\) [\#352](https://github.com/WenchaoD/FSCalendar/issues/352)
- Adding event to a day [\#350](https://github.com/WenchaoD/FSCalendar/issues/350)
- 能否增加一个UI体验 [\#349](https://github.com/WenchaoD/FSCalendar/issues/349)
- Event indicator is sometimes not displayed. [\#340](https://github.com/WenchaoD/FSCalendar/issues/340)
- 关于日历maxdate的问题 [\#339](https://github.com/WenchaoD/FSCalendar/issues/339)
- Year is not shown on every month in the title. [\#338](https://github.com/WenchaoD/FSCalendar/issues/338)
- How to disable selectColor but not "didSelectFunction" [\#336](https://github.com/WenchaoD/FSCalendar/issues/336)
- User selection of placeholder dates should be optional [\#334](https://github.com/WenchaoD/FSCalendar/issues/334)
- Changing scope with an UISwipeGestureRecognizer causes currentPage bug [\#333](https://github.com/WenchaoD/FSCalendar/issues/333)
- Number of rows for current month fixed at 6 when showing placeholders [\#331](https://github.com/WenchaoD/FSCalendar/issues/331)
- How can I put events in day after my array/dictionary is populated. [\#329](https://github.com/WenchaoD/FSCalendar/issues/329)
- Selecting of day after the day user selected [\#327](https://github.com/WenchaoD/FSCalendar/issues/327)
- adding bridge header in swift [\#325](https://github.com/WenchaoD/FSCalendar/issues/325)
- Change Weekday Text Color [\#324](https://github.com/WenchaoD/FSCalendar/issues/324)
- Add an option to stick the weekDays to the top [\#323](https://github.com/WenchaoD/FSCalendar/issues/323)
- Hi, switch month and week, there will be gray background Flashing [\#317](https://github.com/WenchaoD/FSCalendar/issues/317)
- Change placeholder [\#316](https://github.com/WenchaoD/FSCalendar/issues/316)
- 请问可以实现日历跟随UITableView的滚动,实现scopeHandle滑动时切换月和周的效果吗? [\#315](https://github.com/WenchaoD/FSCalendar/issues/315)
- 设置了字体以后出现了下面的情况 [\#314](https://github.com/WenchaoD/FSCalendar/issues/314)
- Default scope week. [\#313](https://github.com/WenchaoD/FSCalendar/issues/313)
- Is there a way of minimizing the distance between the event indicator and the day of the month? [\#309](https://github.com/WenchaoD/FSCalendar/issues/309)
- Disable previous dates in same month with today [\#302](https://github.com/WenchaoD/FSCalendar/issues/302)
- hides placeholder [\#229](https://github.com/WenchaoD/FSCalendar/issues/229)
- Post appearance image/itunes address here [\#2](https://github.com/WenchaoD/FSCalendar/issues/2)
## [2.2.0](https://github.com/WenchaoD/FSCalendar/tree/2.2.0) (2016-06-29)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.1.1...2.2.0)
**Closed issues:**
- Unable to display Date 1 as selected [\#348](https://github.com/WenchaoD/FSCalendar/issues/348)
- every month day is wrong [\#347](https://github.com/WenchaoD/FSCalendar/issues/347)
- 开启showsScopeHandle,会crash [\#346](https://github.com/WenchaoD/FSCalendar/issues/346)
- how to current calendar page month and year [\#345](https://github.com/WenchaoD/FSCalendar/issues/345)
- delegate method call in last [\#344](https://github.com/WenchaoD/FSCalendar/issues/344)
- How to scroll to the average date in selected range? [\#343](https://github.com/WenchaoD/FSCalendar/issues/343)
- 如何设置日期区间? [\#342](https://github.com/WenchaoD/FSCalendar/issues/342)
- How to highlight dates with events? [\#341](https://github.com/WenchaoD/FSCalendar/issues/341)
- Included example project: animation problem when switching months [\#335](https://github.com/WenchaoD/FSCalendar/issues/335)
- How to put all date cells to have background color with border Lines? [\#332](https://github.com/WenchaoD/FSCalendar/issues/332)
- Using other way to change the select day [\#322](https://github.com/WenchaoD/FSCalendar/issues/322)
- Dates selection state issue. [\#321](https://github.com/WenchaoD/FSCalendar/issues/321)
- Set Color For Particular Day of Month [\#320](https://github.com/WenchaoD/FSCalendar/issues/320)
- Solved [\#319](https://github.com/WenchaoD/FSCalendar/issues/319)
- Item day background color [\#318](https://github.com/WenchaoD/FSCalendar/issues/318)
- pod 倒入的2.1.1版本和工程中最新版本不一样 [\#312](https://github.com/WenchaoD/FSCalendar/issues/312)
- Change next and previous month programatically. [\#311](https://github.com/WenchaoD/FSCalendar/issues/311)
- Scope handle starts with week mode [\#310](https://github.com/WenchaoD/FSCalendar/issues/310)
- 使用scope 设置完成之后,不停的滚动,人为调用 setScope 会造成日期混乱 [\#308](https://github.com/WenchaoD/FSCalendar/issues/308)
- 能不能默认就是week模式的 [\#307](https://github.com/WenchaoD/FSCalendar/issues/307)
- 默认启动scrop week [\#305](https://github.com/WenchaoD/FSCalendar/issues/305)
- 关于当前日期显示"今天"两个字的问题 [\#304](https://github.com/WenchaoD/FSCalendar/issues/304)
- Change the colour of dates dynamically. [\#303](https://github.com/WenchaoD/FSCalendar/issues/303)
- Event color indicator 'leaking' default color [\#301](https://github.com/WenchaoD/FSCalendar/issues/301)
- some FSCalendarDataSource methods not called [\#299](https://github.com/WenchaoD/FSCalendar/issues/299)
- Handling the scope manually with a finger slide [\#298](https://github.com/WenchaoD/FSCalendar/issues/298)
- Add Table Below Calandar [\#297](https://github.com/WenchaoD/FSCalendar/issues/297)
- Today should be nullable, to set it to nil in Swift [\#296](https://github.com/WenchaoD/FSCalendar/issues/296)
- 月与周切换多次,导致异常问题 [\#295](https://github.com/WenchaoD/FSCalendar/issues/295)
- 关于日历中当前日期标题文字的问题 [\#294](https://github.com/WenchaoD/FSCalendar/issues/294)
- 关于ScopeHandle新功能,月与周切换多次后,时间回到1980年的问题! [\#293](https://github.com/WenchaoD/FSCalendar/issues/293)
- dot event remove after swiping the calendar [\#292](https://github.com/WenchaoD/FSCalendar/issues/292)
- 设置那个隐藏占位时间不能运行很好\(demo也是如此\) [\#291](https://github.com/WenchaoD/FSCalendar/issues/291)
- numberOfEventsForDate gets called multiple times. [\#290](https://github.com/WenchaoD/FSCalendar/issues/290)
- In some examples layout needs to be updated after rotation [\#289](https://github.com/WenchaoD/FSCalendar/issues/289)
- Split View not supported [\#288](https://github.com/WenchaoD/FSCalendar/issues/288)
- fullScreen 设置Scope 问题 [\#287](https://github.com/WenchaoD/FSCalendar/issues/287)
- custom images for date are off-center after orientation change [\#286](https://github.com/WenchaoD/FSCalendar/issues/286)
- Implementing feature "EveryDay" when creating an event for a date. [\#285](https://github.com/WenchaoD/FSCalendar/issues/285)
- Is it possible to toggle between FSCalendarScopeMonth and FSCalendarScopeWeek using finger? [\#284](https://github.com/WenchaoD/FSCalendar/issues/284)
- Delegate method calendar:didDeselectDate: not called [\#283](https://github.com/WenchaoD/FSCalendar/issues/283)
- Setting paging enabled in IB causes Xcode to freeze [\#282](https://github.com/WenchaoD/FSCalendar/issues/282)
- Selected date error [\#280](https://github.com/WenchaoD/FSCalendar/issues/280)
- Can i create combine Gregorian and Islamic\(Hijri\) calendar? [\#279](https://github.com/WenchaoD/FSCalendar/issues/279)
- Dot with count in the calendar view [\#278](https://github.com/WenchaoD/FSCalendar/issues/278)
- How to set delegateAppearance in swift? [\#277](https://github.com/WenchaoD/FSCalendar/issues/277)
- Change particular date colour & add events on particular dates . [\#275](https://github.com/WenchaoD/FSCalendar/issues/275)
- Can you set the background of a single day? [\#270](https://github.com/WenchaoD/FSCalendar/issues/270)
- selected date as Nullable [\#264](https://github.com/WenchaoD/FSCalendar/issues/264)
- calendar height increases when I change from week view to month view. [\#263](https://github.com/WenchaoD/FSCalendar/issues/263)
- Problem with showsPlaceholder [\#257](https://github.com/WenchaoD/FSCalendar/issues/257)
- Weekscope: change month scrollView only when month changes [\#187](https://github.com/WenchaoD/FSCalendar/issues/187)
- Scrolling so fast does not trigger calendarCurrentPageDidChange [\#113](https://github.com/WenchaoD/FSCalendar/issues/113)
**Merged pull requests:**
- Fixes local variable shadow warnings when warning -Wshadow is enabled. [\#337](https://github.com/WenchaoD/FSCalendar/pull/337) ([schaechtele](https://github.com/schaechtele))
- Removing unnecessary import [\#306](https://github.com/WenchaoD/FSCalendar/pull/306) ([yas375](https://github.com/yas375))
## [2.1.1](https://github.com/WenchaoD/FSCalendar/tree/2.1.1) (2016-04-26)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.1.0...2.1.1)
**Closed issues:**
- How to add event on an array of dates in swift [\#276](https://github.com/WenchaoD/FSCalendar/issues/276)
- Is there a way to change the color of the line underneath the month? [\#274](https://github.com/WenchaoD/FSCalendar/issues/274)
- Don't allow date in the future to be selected. [\#273](https://github.com/WenchaoD/FSCalendar/issues/273)
- Multiple months in the same view? [\#272](https://github.com/WenchaoD/FSCalendar/issues/272)
- 请问如何将calendar的6行改为5行以及仿ios原生日历增加cell的height? [\#271](https://github.com/WenchaoD/FSCalendar/issues/271)
- Calendar goes down when i return with de back button of the navigation controller [\#269](https://github.com/WenchaoD/FSCalendar/issues/269)
- Calendar is too short in week scope [\#268](https://github.com/WenchaoD/FSCalendar/issues/268)
- Once I select a date, I want to add a dot to show that date has an event [\#267](https://github.com/WenchaoD/FSCalendar/issues/267)
- Unknown class FSCalendar in Interface Builder file. [\#266](https://github.com/WenchaoD/FSCalendar/issues/266)
- Disable feature date [\#265](https://github.com/WenchaoD/FSCalendar/issues/265)
- 当前时间的颜色 [\#262](https://github.com/WenchaoD/FSCalendar/issues/262)
- Hiding header [\#255](https://github.com/WenchaoD/FSCalendar/issues/255)
- Change fill color for Unselected dates. [\#254](https://github.com/WenchaoD/FSCalendar/issues/254)
- How to Add Prev / Next button for swap month in FSCalendar [\#252](https://github.com/WenchaoD/FSCalendar/issues/252)
- How to do range selection in this calendar? [\#249](https://github.com/WenchaoD/FSCalendar/issues/249)
- FSCalendarDelegateAppearance placeholder color [\#180](https://github.com/WenchaoD/FSCalendar/issues/180)
- How to use custom background for selection and change the frame of FSCalendar [\#151](https://github.com/WenchaoD/FSCalendar/issues/151)
## [2.1.0](https://github.com/WenchaoD/FSCalendar/tree/2.1.0) (2016-04-11)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.0.1...2.1.0)
**Closed issues:**
- How To change Header Title \(Aug 2016\) Font and Font Size [\#260](https://github.com/WenchaoD/FSCalendar/issues/260)
- Weekdays Background Color Change. [\#259](https://github.com/WenchaoD/FSCalendar/issues/259)
- Calendar showing event date on every date. [\#256](https://github.com/WenchaoD/FSCalendar/issues/256)
- Can it set placeholder hidden? [\#253](https://github.com/WenchaoD/FSCalendar/issues/253)
- how to disabled backs dates in this calendar? [\#251](https://github.com/WenchaoD/FSCalendar/issues/251)
- Possible to provide minimum and maximum date for calendar? [\#250](https://github.com/WenchaoD/FSCalendar/issues/250)
- How does one achieve this look that is in your README. [\#248](https://github.com/WenchaoD/FSCalendar/issues/248)
- Need to change FSCalendarHeaderCell titlelabel text [\#247](https://github.com/WenchaoD/FSCalendar/issues/247)
- calendarCurrentPageDidChange not showing correct Date [\#246](https://github.com/WenchaoD/FSCalendar/issues/246)
- Access Current Month [\#245](https://github.com/WenchaoD/FSCalendar/issues/245)
- Is it possible to change FSCalendar scope by vertical swipe gesture? [\#244](https://github.com/WenchaoD/FSCalendar/issues/244)
- Is it possible to change FSCalendar scope by vertical swipe gesture? [\#243](https://github.com/WenchaoD/FSCalendar/issues/243)
- How to increase the font size of the dates? [\#242](https://github.com/WenchaoD/FSCalendar/issues/242)
- what about lower case for week days and month? [\#241](https://github.com/WenchaoD/FSCalendar/issues/241)
- is it possible to add another shape as rectangle with rounded corners? [\#240](https://github.com/WenchaoD/FSCalendar/issues/240)
- is there a way to indicate days, which can't be selected, with regular selector shape of different color? [\#239](https://github.com/WenchaoD/FSCalendar/issues/239)
- calendarCurrentMonthDidChange doesn't work [\#238](https://github.com/WenchaoD/FSCalendar/issues/238)
**Merged pull requests:**
- Fix for fillColor when dateIsToday [\#261](https://github.com/WenchaoD/FSCalendar/pull/261) ([sochalewski](https://github.com/sochalewski))
- fillColor delegate method for unselected dates \(cells\) [\#258](https://github.com/WenchaoD/FSCalendar/pull/258) ([sochalewski](https://github.com/sochalewski))
## [2.0.1](https://github.com/WenchaoD/FSCalendar/tree/2.0.1) (2016-03-26)
[Full Changelog](https://github.com/WenchaoD/FSCalendar/compare/2.0.0...2.0.1)
**Closed issues:**
- issue with calendar.setScope\(.Month, animated: true\) [\#237](https://github.com/WenchaoD/FSCalendar/issues/237)
- how to prevent array of days from being selected? [\#236](https://github.com/WenchaoD/FSCalendar/issues/236)
- hides placeholder [\#235](https://github.com/WenchaoD/FSCalendar/issues/235)
- Date marker colors [\#233](https://github.com/WenchaoD/FSCalendar/issues/233)
- How to change weekday background? [\#232](https://github.com/WenchaoD/FSCalendar/issues/232)
- Cocoapods version seems to be old [\#231](https://github.com/WenchaoD/FSCalendar/issues/231)
- force reload data [\#230](https://github.com/WenchaoD/FSCalendar/issues/230)
- Is it possible to make event indicators have different colors each? [\#217](https://github.com/WenchaoD/FSCalendar/issues/217)
- Lunar date issue when scroll page then go to previous page [\#161](https://github.com/WenchaoD/FSCalendar/issues/161)
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
================================================
FILE: Example-Objc/AppDelegate.h
================================================
//
// FSAppDelegate.h
// FSCalendar
//
// Created by CocoaPods on 02/13/2015.
// Copyright (c) 2014 =. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
================================================
FILE: Example-Objc/AppDelegate.m
================================================
//
// FSAppDelegate.m
// FSCalendar
//
// Created by CocoaPods on 02/13/2015.
// Copyright (c) 2014 =. All rights reserved.
//
#import "AppDelegate.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application
{
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end
================================================
FILE: Example-Objc/Base.lproj/Main.storyboard
================================================
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14313.18" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="x1V-gv-tFA">
<device id="retina5_5" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14283.14"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--Navigation Controller-->
<scene sceneID="hBW-Rp-I6M">
<objects>
<navigationController id="x1V-gv-tFA" sceneMemberID="viewController">
<navigationBar key="navigationBar" contentMode="scaleToFill" id="yhE-pm-rYs">
<rect key="frame" x="0.0" y="20" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<color key="tintColor" red="0.22352941179999999" green="0.27450980390000002" blue="0.34901960780000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
</navigationBar>
<connections>
<segue destination="jWc-KU-wJn" kind="relationship" relationship="rootViewController" id="Hc0-97-UQW"/>
</connections>
</navigationController>
<placeholder placeholderIdentifier="IBFirstResponder" id="u4t-nO-9f4" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-736" y="250"/>
</scene>
<!--FSCalendar-->
<scene sceneID="UqQ-Li-csF">
<objects>
<tableViewController id="jWc-KU-wJn" customClass="FSTableViewController" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" showsHorizontalScrollIndicator="NO" dataMode="static" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="lkh-E0-tT6">
<rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<sections>
<tableViewSection id="OKx-qF-6aM">
<cells>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="BTI-ak-w5P" detailTextLabel="EBv-iS-mwS" style="IBUITableViewCellStyleValue1" id="ilZ-x3-AkF">
<rect key="frame" x="0.0" y="0.0" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ilZ-x3-AkF" id="5uP-Qt-G8A">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Range Picker Example" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="BTI-ak-w5P">
<rect key="frame" x="20" y="12.999999999999998" width="160.66666666666666" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Feature!" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="EBv-iS-mwS">
<rect key="frame" x="334" y="12.999999999999998" width="60" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<accessibility key="accessibilityConfiguration">
<bool key="isElement" value="YES"/>
</accessibility>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="VEn-eU-wEh" detailTextLabel="fIW-N1-W8b" style="IBUITableViewCellStyleValue1" id="rGl-7H-4Ax">
<rect key="frame" x="0.0" y="44" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="rGl-7H-4Ax" id="fhO-jI-fTO">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="DIY Example" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="VEn-eU-wEh">
<rect key="frame" x="19.999999999999993" y="12.999999999999998" width="91.333333333333329" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Feature!" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="fIW-N1-W8b">
<rect key="frame" x="334" y="12.999999999999998" width="60" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<accessibility key="accessibilityConfiguration">
<bool key="isElement" value="YES"/>
</accessibility>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="knr-d7-eLT" detailTextLabel="zgT-YF-Mw0" style="IBUITableViewCellStyleValue1" id="loD-Ps-7lv">
<rect key="frame" x="0.0" y="88" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="loD-Ps-7lv" id="665-2l-kyj">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Prev-Next Buttons" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="knr-d7-eLT">
<rect key="frame" x="20" y="12.999999999999998" width="134" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="zgT-YF-Mw0">
<rect key="frame" x="352.33333333333331" y="12.999999999999998" width="41.666666666666664" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="1" green="0.5" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<accessibility key="accessibilityConfiguration">
<bool key="isElement" value="YES"/>
</accessibility>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="Vs7-Jd-cjq" detailTextLabel="gff-XM-V55" style="IBUITableViewCellStyleValue1" id="qE0-lu-G1p">
<rect key="frame" x="0.0" y="132" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="qE0-lu-G1p" id="6O1-Np-Eux">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Hides Placeholder" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Vs7-Jd-cjq">
<rect key="frame" x="20" y="12.999999999999998" width="131.66666666666666" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="gff-XM-V55">
<rect key="frame" x="352.33333333333331" y="12.999999999999998" width="41.666666666666664" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="1" green="0.5" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<accessibility key="accessibilityConfiguration">
<bool key="isElement" value="YES"/>
</accessibility>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="1MA-EI-d9Y" detailTextLabel="Fd2-ZY-i4q" style="IBUITableViewCellStyleValue1" id="20K-34-abb">
<rect key="frame" x="0.0" y="176" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="20K-34-abb" id="ok8-em-mqD">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Delegate Appearance" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="1MA-EI-d9Y">
<rect key="frame" x="20" y="12.999999999999998" width="156.66666666666666" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Fd2-ZY-i4q">
<rect key="frame" x="352.33333333333331" y="12.999999999999998" width="41.666666666666664" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="1" green="0.5" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<accessibility key="accessibilityConfiguration">
<bool key="isElement" value="YES"/>
</accessibility>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="LZ9-Fp-P5z" detailTextLabel="59s-j4-9Zz" style="IBUITableViewCellStyleValue1" id="TLw-G1-xh8">
<rect key="frame" x="0.0" y="220" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="TLw-G1-xh8" id="Wkd-ao-XpQ">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Full Screen Example" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="LZ9-Fp-P5z">
<rect key="frame" x="20" y="12.999999999999998" width="146" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="59s-j4-9Zz">
<rect key="frame" x="352.33333333333331" y="12.999999999999998" width="41.666666666666664" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.83339345455169678" green="0.12959109246730804" blue="0.18788796663284302" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<accessibility key="accessibilityConfiguration">
<bool key="isElement" value="YES"/>
</accessibility>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="sRI-B1-vbS" detailTextLabel="kD6-v0-evj" style="IBUITableViewCellStyleValue1" id="hX9-bB-aHp">
<rect key="frame" x="0.0" y="264" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="hX9-bB-aHp" id="Mhd-Y2-O2b">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="FSCalendarScope Example" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="sRI-B1-vbS">
<rect key="frame" x="20" y="12.999999999999998" width="195.33333333333334" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="kD6-v0-evj">
<rect key="frame" x="352.33333333333331" y="12.999999999999998" width="41.666666666666664" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.55686274509803924" green="0.55686274509803924" blue="0.57647058823529407" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<accessibility key="accessibilityConfiguration">
<bool key="isElement" value="YES"/>
</accessibility>
<connections>
<segue destination="To9-yq-KZP" kind="show" id="Evz-Bc-bgS"/>
</connections>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="4Jp-Rp-ISm" detailTextLabel="ywa-Qw-AQi" style="IBUITableViewCellStyleValue1" id="sma-BS-vZ4">
<rect key="frame" x="0.0" y="308" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="sma-BS-vZ4" id="Cyd-80-9BJ">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Storyboard Example" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="4Jp-Rp-ISm">
<rect key="frame" x="20" y="12.999999999999998" width="146.66666666666666" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="ywa-Qw-AQi">
<rect key="frame" x="352.33333333333331" y="12.999999999999998" width="41.666666666666664" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.55686274509803924" green="0.55686274509803924" blue="0.57647058823529407" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<accessibility key="accessibilityConfiguration">
<bool key="isElement" value="YES"/>
</accessibility>
<connections>
<segue destination="vXZ-lx-hvc" kind="show" id="3DX-18-9y4"/>
</connections>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="A43-g1-NbJ" detailTextLabel="kjt-xH-OKS" style="IBUITableViewCellStyleValue1" id="Q8e-18-OC0">
<rect key="frame" x="0.0" y="352" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Q8e-18-OC0" id="S9e-pq-bHQ">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="LoadView Example" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="A43-g1-NbJ">
<rect key="frame" x="20" y="12.999999999999998" width="136.33333333333334" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="kjt-xH-OKS">
<rect key="frame" x="352.33333333333331" y="12.999999999999998" width="41.666666666666664" height="19.333333333333332"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.55686274509803924" green="0.55686274509803924" blue="0.57647058823529407" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<accessibility key="accessibilityConfiguration">
<bool key="isElement" value="YES"/>
</accessibility>
</tableViewCell>
</cells>
</tableViewSection>
</sections>
<connections>
<outlet property="dataSource" destination="jWc-KU-wJn" id="KSH-1r-Bil"/>
<outlet property="delegate" destination="jWc-KU-wJn" id="uWL-9h-gc3"/>
</connections>
</tableView>
<navigationItem key="navigationItem" title="FSCalendar" id="NyB-j8-nIl"/>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="HD2-e9-ZT7" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="70" y="251"/>
</scene>
<!--Data Source-->
<scene sceneID="Me2-r0-ElZ">
<objects>
<viewController title="FSCalendarScopeExample" id="To9-yq-KZP" customClass="FSCalendarScopeExampleViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="mb8-tO-gOh"/>
<viewControllerLayoutGuide type="bottom" id="OcX-8w-NJf"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="MiY-ip-WTw">
<rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7hZ-tJ-5NZ" customClass="FSCalendar">
<rect key="frame" x="0.0" y="64" width="414" height="300"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="300" id="cDz-g5-tqF"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="fakedSelectedDay">
<integer key="value" value="1"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
<connections>
<outlet property="dataSource" destination="To9-yq-KZP" id="YC8-We-eEn"/>
<outlet property="delegate" destination="To9-yq-KZP" id="c6b-Yv-igC"/>
</connections>
</view>
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" translatesAutoresizingMaskIntoConstraints="NO" id="noP-KN-SwP">
<rect key="frame" x="0.0" y="380" width="414" height="356"/>
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<view key="tableFooterView" contentMode="scaleToFill" id="5Js-5e-oo9" userLabel="Footer">
<rect key="frame" x="0.0" y="197.33333333333337" width="414" height="69"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2pf-mw-cB2">
<rect key="frame" x="104" y="19" width="51" height="31"/>
</switch>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Animated" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hcJ-ta-ZTH">
<rect key="frame" x="14" y="9" width="73" height="51"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<constraints>
<constraint firstItem="2pf-mw-cB2" firstAttribute="leading" secondItem="hcJ-ta-ZTH" secondAttribute="trailing" constant="17" id="0vO-Zc-UVh"/>
<constraint firstItem="hcJ-ta-ZTH" firstAttribute="top" secondItem="5Js-5e-oo9" secondAttribute="top" constant="9" id="RCk-ag-GIn"/>
<constraint firstItem="2pf-mw-cB2" firstAttribute="centerY" secondItem="hcJ-ta-ZTH" secondAttribute="centerY" id="Z2c-O7-ajy"/>
<constraint firstItem="hcJ-ta-ZTH" firstAttribute="centerY" secondItem="5Js-5e-oo9" secondAttribute="centerY" id="eTo-LY-tt3"/>
<constraint firstItem="hcJ-ta-ZTH" firstAttribute="leading" secondItem="5Js-5e-oo9" secondAttribute="leading" constant="14" id="j3F-7J-MF6"/>
</constraints>
</view>
<prototypes>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell_month" textLabel="qol-Mc-4nA" style="IBUITableViewCellStyleDefault" id="GpG-sh-Z79">
<rect key="frame" x="0.0" y="55.333333333333343" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="GpG-sh-Z79" id="ndN-kE-CsB">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="FSCalendarScopeMonth" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="qol-Mc-4nA">
<rect key="frame" x="20" y="0.0" width="374" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="cell_week" textLabel="IbE-ao-K9G" style="IBUITableViewCellStyleDefault" id="Hqm-gV-y6n">
<rect key="frame" x="0.0" y="99.333333333333343" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Hqm-gV-y6n" id="eX8-Cw-vtY">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="FSCalendarScopeWeek" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="IbE-ao-K9G">
<rect key="frame" x="20" y="0.0" width="374" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" indentationWidth="10" reuseIdentifier="cell" textLabel="mWw-Yo-w7e" imageView="lHd-eg-ONH" style="IBUITableViewCellStyleDefault" id="d4I-Mu-gPK">
<rect key="frame" x="0.0" y="143.33333333333334" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="d4I-Mu-gPK" id="xt8-50-Tc2">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Lorem ipsum dolor sit er elit lamet" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="mWw-Yo-w7e">
<rect key="frame" x="53" y="0.0" width="341" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" image="icon_cat" id="lHd-eg-ONH">
<rect key="frame" x="20" y="14" width="18" height="15"/>
<autoresizingMask key="autoresizingMask"/>
</imageView>
</subviews>
</tableViewCellContentView>
</tableViewCell>
</prototypes>
<connections>
<outlet property="dataSource" destination="To9-yq-KZP" id="YWp-fK-vlc"/>
<outlet property="delegate" destination="To9-yq-KZP" id="8Pl-kN-tb5"/>
</connections>
</tableView>
</subviews>
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="trailing" secondItem="7hZ-tJ-5NZ" secondAttribute="trailing" id="5En-7U-m9P"/>
<constraint firstItem="noP-KN-SwP" firstAttribute="trailing" secondItem="7hZ-tJ-5NZ" secondAttribute="trailing" id="5sZ-zg-S2S"/>
<constraint firstItem="noP-KN-SwP" firstAttribute="top" secondItem="7hZ-tJ-5NZ" secondAttribute="bottom" constant="16" id="6Oc-iC-2wg"/>
<constraint firstItem="noP-KN-SwP" firstAttribute="leading" secondItem="7hZ-tJ-5NZ" secondAttribute="leading" id="Eta-GV-MLi"/>
<constraint firstItem="OcX-8w-NJf" firstAttribute="top" secondItem="noP-KN-SwP" secondAttribute="bottom" id="Qm4-JL-n5E"/>
<constraint firstItem="7hZ-tJ-5NZ" firstAttribute="leading" secondItem="MiY-ip-WTw" secondAttribute="leading" id="eoP-Ms-ktd"/>
<constraint firstItem="7hZ-tJ-5NZ" firstAttribute="top" secondItem="mb8-tO-gOh" secondAttribute="bottom" id="qGS-mB-3eB"/>
</constraints>
</view>
<navigationItem key="navigationItem" title="FSCalendar" id="W8S-6B-A6Z">
<barButtonItem key="rightBarButtonItem" title="Toggle" id="Iel-ZK-vVP">
<connections>
<action selector="toggleClicked:" destination="To9-yq-KZP" id="Ch2-Jy-Acp"/>
</connections>
</barButtonItem>
</navigationItem>
<connections>
<outlet property="animationSwitch" destination="2pf-mw-cB2" id="aWh-li-feG"/>
<outlet property="calendar" destination="7hZ-tJ-5NZ" id="RLE-MR-1Vb"/>
<outlet property="calendarHeightConstraint" destination="cDz-g5-tqF" id="g8z-qq-CsQ"/>
<outlet property="tableView" destination="noP-KN-SwP" id="HMk-2E-ieq"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="LB3-r6-zJ7" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="838" y="-119"/>
</scene>
<!--StoryboardExampleViewController-->
<scene sceneID="ufC-wZ-h7g">
<objects>
<viewController title="StoryboardExampleViewController" automaticallyAdjustsScrollViewInsets="NO" id="vXZ-lx-hvc" userLabel="StoryboardExampleViewController" customClass="StoryboardExampleViewController" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="jyV-Pf-zRb"/>
<viewControllerLayoutGuide type="bottom" id="2fi-mo-0CV"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="kh9-bI-dsS">
<rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<subviews>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="i44-Ll-ELi" customClass="FSCalendar">
<rect key="frame" x="0.0" y="64" width="414" height="300"/>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstAttribute="height" constant="300" id="AsQ-eP-ia8"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="number" keyPath="fakedSelectedDay">
<integer key="value" value="2"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="boolean" keyPath="useVeryShortWeekdaySymbols" value="NO"/>
<userDefinedRuntimeAttribute type="boolean" keyPath="pagingEnabled" value="YES"/>
<userDefinedRuntimeAttribute type="boolean" keyPath="scrollEnabled" value="YES"/>
<userDefinedRuntimeAttribute type="boolean" keyPath="fakeSubtitles" value="YES"/>
</userDefinedRuntimeAttributes>
<connections>
<outlet property="dataSource" destination="vXZ-lx-hvc" id="CT5-P9-sbn"/>
<outlet property="delegate" destination="vXZ-lx-hvc" id="9NC-7Q-TmM"/>
</connections>
</view>
</subviews>
<color key="backgroundColor" red="0.90980392160000001" green="0.91372549020000005" blue="0.90980392160000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="i44-Ll-ELi" firstAttribute="top" secondItem="jyV-Pf-zRb" secondAttribute="bottom" id="1gL-Jb-oDc"/>
<constraint firstAttribute="trailing" secondItem="i44-Ll-ELi" secondAttribute="trailing" id="4lx-i7-OBX"/>
<constraint firstItem="i44-Ll-ELi" firstAttribute="leading" secondItem="kh9-bI-dsS" secondAttribute="leading" id="7am-cV-9Ui"/>
</constraints>
</view>
<navigationItem key="navigationItem" title="FSCalendar" id="XvH-Gc-dEi">
<barButtonItem key="rightBarButtonItem" image="icon_setting" id="Syi-J8-9Kw">
<color key="tintColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<connections>
<segue destination="5IA-Lj-ace" kind="show" identifier="Configuration" id="lM9-4x-Te6"/>
</connections>
</barButtonItem>
</navigationItem>
<connections>
<outlet property="calendar" destination="i44-Ll-ELi" id="rjY-a3-mAd"/>
<outlet property="calendarHeightConstraint" destination="AsQ-eP-ia8" id="hLD-9b-Xyh"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/>
<exit id="5Oo-tL-GbD" userLabel="Exit" sceneMemberID="exit"/>
</objects>
<point key="canvasLocation" x="838" y="642"/>
</scene>
<!--Configuration-->
<scene sceneID="nFi-cp-YQl">
<objects>
<tableViewController id="5IA-Lj-ace" customClass="CalendarConfigViewController" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="jT2-lU-gLR">
<rect key="frame" x="0.0" y="0.0" width="414" height="736"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="0.93725490196078431" green="0.93725490196078431" blue="0.95686274509803926" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<sections>
<tableViewSection headerTitle="Theme" id="lLy-fn-2TE">
<cells>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="checkmark" indentationWidth="10" textLabel="O62-83-teD" style="IBUITableViewCellStyleDefault" id="xjX-ie-i7F">
<rect key="frame" x="0.0" y="55.333333333333343" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="xjX-ie-i7F" id="7At-0T-T7R">
<rect key="frame" x="0.0" y="0.0" width="370" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Theme1" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="O62-83-teD">
<rect key="frame" x="20" y="0.0" width="350" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="h3n-ib-wIe" style="IBUITableViewCellStyleDefault" id="blV-7a-bgu">
<rect key="frame" x="0.0" y="99.333333333333343" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="blV-7a-bgu" id="Mer-0G-38X">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Theme2" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="h3n-ib-wIe">
<rect key="frame" x="20" y="0.0" width="374" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="6sG-w2-epw" style="IBUITableViewCellStyleDefault" id="Sgh-je-y0P">
<rect key="frame" x="0.0" y="143.33333333333334" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Sgh-je-y0P" id="cgn-1P-xtc">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Theme3" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="6sG-w2-epw">
<rect key="frame" x="20" y="0.0" width="374" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
</cells>
</tableViewSection>
<tableViewSection headerTitle="Subtitle" id="Ixa-uS-SeY">
<cells>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="checkmark" indentationWidth="10" textLabel="cll-gl-Oyc" style="IBUITableViewCellStyleDefault" id="ZA6-Ho-27f">
<rect key="frame" x="0.0" y="235.33333333333337" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ZA6-Ho-27f" id="tfM-ed-fKZ">
<rect key="frame" x="0.0" y="0.0" width="370" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Lunar" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="cll-gl-Oyc">
<rect key="frame" x="20" y="0.0" width="350" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
</cells>
</tableViewSection>
<tableViewSection headerTitle="Scroll Direction" id="kMU-Xw-8pq">
<cells>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="checkmark" indentationWidth="10" textLabel="l29-05-Mps" style="IBUITableViewCellStyleDefault" id="wu7-0W-ztL">
<rect key="frame" x="0.0" y="327.33333333333337" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="wu7-0W-ztL" id="BN9-nu-Rd8">
<rect key="frame" x="0.0" y="0.0" width="370" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Horizontal" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="l29-05-Mps">
<rect key="frame" x="20" y="0.0" width="350" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="wSk-45-sYI" style="IBUITableViewCellStyleDefault" id="jrr-g8-vMH">
<rect key="frame" x="0.0" y="371.33333333333337" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="jrr-g8-vMH" id="u7e-hb-Fi8">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Vertical" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="wSk-45-sYI">
<rect key="frame" x="20" y="0.0" width="374" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
</cells>
</tableViewSection>
<tableViewSection headerTitle="Select a date" id="Mj9-w7-PxM">
<cells>
<tableViewCell contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" rowHeight="163" id="Xr3-tL-cx6">
<rect key="frame" x="0.0" y="463.33333333333337" width="414" height="163"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Xr3-tL-cx6" id="IPe-2o-5Tt">
<rect key="frame" x="0.0" y="0.0" width="414" height="162.66666666666666"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<datePicker contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" datePickerMode="date" minuteInterval="1" translatesAutoresizingMaskIntoConstraints="NO" id="9jN-O2-iw4">
<rect key="frame" x="0.0" y="0.0" width="414" height="162.66666666666666"/>
<date key="date" timeIntervalSinceReferenceDate="448248004.37374699">
<!--2015-03-17 01:20:04 +0000-->
</date>
<date key="minimumDate" timeIntervalSinceReferenceDate="-978267600">
<!--1970-01-01 11:00:00 +0000-->
</date>
<date key="maximumDate" timeIntervalSinceReferenceDate="3124090800">
<!--2099-12-31 11:00:00 +0000-->
</date>
</datePicker>
</subviews>
<constraints>
<constraint firstAttribute="bottom" secondItem="9jN-O2-iw4" secondAttribute="bottom" id="7bs-so-tMY"/>
<constraint firstItem="9jN-O2-iw4" firstAttribute="leading" secondItem="IPe-2o-5Tt" secondAttribute="leading" id="TdV-lD-3Kk"/>
<constraint firstItem="9jN-O2-iw4" firstAttribute="top" secondItem="IPe-2o-5Tt" secondAttribute="top" id="hLa-ew-7UJ"/>
<constraint firstAttribute="trailing" secondItem="9jN-O2-iw4" secondAttribute="trailing" id="nYy-kg-X1b"/>
</constraints>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="bo0-pq-yfc" style="IBUITableViewCellStyleDefault" id="XkD-qX-hNP">
<rect key="frame" x="0.0" y="626.33333333333337" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="XkD-qX-hNP" id="V7X-2b-Dmn">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Click to select" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="bo0-pq-yfc">
<rect key="frame" x="20" y="0.0" width="374" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
</cells>
</tableViewSection>
<tableViewSection headerTitle="First Weekday" id="e6k-Nb-Rfs">
<cells>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="checkmark" indentationWidth="10" textLabel="b1w-3T-SyL" rowHeight="44" style="IBUITableViewCellStyleDefault" id="6hg-QL-bc8">
<rect key="frame" x="0.0" y="718.33333333333337" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="6hg-QL-bc8" id="tQG-o5-0kl">
<rect key="frame" x="0.0" y="0.0" width="382" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Sunday" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="b1w-3T-SyL">
<rect key="frame" x="15" y="0.0" width="364" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="1mu-CL-5W8" style="IBUITableViewCellStyleDefault" id="7J8-y8-jhG">
<rect key="frame" x="0.0" y="762.33333333333337" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7J8-y8-jhG" id="7w4-Dd-VtC">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Monday" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="1mu-CL-5W8">
<rect key="frame" x="15" y="0.0" width="384" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="1TT-Ea-cLc" style="IBUITableViewCellStyleDefault" id="a9F-Qo-P7t">
<rect key="frame" x="0.0" y="806.33333333333337" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="a9F-Qo-P7t" id="KVB-7S-jEN">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Tuesday" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="1TT-Ea-cLc">
<rect key="frame" x="15" y="0.0" width="384" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="8Rm-Lk-xrc" style="IBUITableViewCellStyleDefault" id="SSQ-E0-iHW">
<rect key="frame" x="0.0" y="850.33333333333337" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="SSQ-E0-iHW" id="Iv0-be-dni">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Wednesday" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="8Rm-Lk-xrc">
<rect key="frame" x="15" y="0.0" width="384" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="bfC-Bz-4vz" style="IBUITableViewCellStyleDefault" id="e4I-Uv-pGe">
<rect key="frame" x="0.0" y="894.33333333333337" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="e4I-Uv-pGe" id="p44-kC-dPa">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Thursday" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="bfC-Bz-4vz">
<rect key="frame" x="15" y="0.0" width="384" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="EaK-NQ-DfA" style="IBUITableViewCellStyleDefault" id="NEU-aY-ej6">
<rect key="frame" x="0.0" y="938.33333333333337" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="NEU-aY-ej6" id="iDc-nK-neA">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Friday" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="EaK-NQ-DfA">
<rect key="frame" x="15" y="0.0" width="384" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
<tableViewCell contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="jZz-sF-yrb" style="IBUITableViewCellStyleDefault" id="vUs-68-LZs">
<rect key="frame" x="0.0" y="982.33333333333337" width="414" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="vUs-68-LZs" id="L3h-Na-rtq">
<rect key="frame" x="0.0" y="0.0" width="414" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Saturday" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="jZz-sF-yrb">
<rect key="frame" x="15" y="0.0" width="384" height="43.666666666666664"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" type="system" pointSize="16"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
</tableViewCell>
</cells>
</tableViewSection>
</sections>
<connections>
<outlet property="dataSource" destination="5IA-Lj-ace" id="olS-et-LJx"/>
<outlet property="delegate" destination="5IA-Lj-ace" id="duD-eq-1Ft"/>
</connections>
</tableView>
<navigationItem key="navigationItem" title="Configuration" id="h0j-eU-XkL"/>
<simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/>
<connections>
<outlet property="datePicker" destination="9jN-O2-iw4" id="bYp-k7-F9m"/>
<segue destination="5Oo-tL-GbD" kind="unwind" identifier="unwind2StoryboardExample" unwindAction="unwind2StoryboardExample:" id="YEW-Md-jvb"/>
</connections>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="HRM-6a-tFh" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1720" y="642"/>
</scene>
</scenes>
<resources>
<image name="icon_cat" width="18" height="15"/>
<image name="icon_setting" width="24" height="24"/>
</resources>
</document>
================================================
FILE: Example-Objc/ButtonsViewController.h
================================================
//
// ButtonsViewController.h
// FSCalendar
//
// Created by dingwenchao on 4/15/16.
// Copyright © 2016 Wenchao Ding. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface ButtonsViewController : UIViewController
@end
================================================
FILE: Example-Objc/ButtonsViewController.m
================================================
//
// ButtonsViewController.m
// FSCalendar
//
// Created by dingwenchao on 4/15/16.
// Copyright © 2016 Wenchao Ding. All rights reserved.
//
#import "ButtonsViewController.h"
#import "FSCalendar.h"
@interface ButtonsViewController()<FSCalendarDataSource,FSCalendarDelegate>
@property (weak, nonatomic) FSCalendar *calendar;
@property (weak, nonatomic) UIButton *previousButton;
@property (weak, nonatomic) UIButton *nextButton;
@property (strong, nonatomic) NSCalendar *gregorian;
- (void)previousClicked:(id)sender;
- (void)nextClicked:(id)sender;
@end
@implementation ButtonsViewController
- (instancetype)init
{
self = [super init];
if (self) {
self.title = @"FSCalendar";
self.gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
}
return self;
}
- (void)loadView
{
UIView *view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
view.backgroundColor = [UIColor groupTableViewBackgroundColor];
self.view = view;
// 450 for iPad and 300 for iPhone
CGFloat height = [[UIDevice currentDevice].model hasPrefix:@"iPad"] ? 450 : 300;
FSCalendar *calendar = [[FSCalendar alloc] initWithFrame:CGRectMake(0, 64, view.frame.size.width, height)];
calendar.dataSource = self;
calendar.delegate = self;
calendar.backgroundColor = [UIColor whiteColor];
calendar.appearance.headerMinimumDissolvedAlpha = 0;
calendar.appearance.caseOptions = FSCalendarCaseOptionsHeaderUsesUpperCase;
[self.view addSubview:calendar];
self.calendar = calendar;
UIButton *previousButton = [UIButton buttonWithType:UIButtonTypeCustom];
previousButton.frame = CGRectMake(0, 64+5, 95, 34);
previousButton.backgroundColor = [UIColor whiteColor];
previousButton.titleLabel.font = [UIFont systemFontOfSize:15];
[previousButton setImage:[UIImage imageNamed:@"icon_prev"] forState:UIControlStateNormal];
[previousButton addTarget:self action:@selector(previousClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:previousButton];
self.previousButton = previousButton;
UIButton *nextButton = [UIButton buttonWithType:UIButtonTypeCustom];
nextButton.frame = CGRectMake(CGRectGetWidth(self.view.frame)-95, 64+5, 95, 34);
nextButton.backgroundColor = [UIColor whiteColor];
nextButton.titleLabel.font = [UIFont systemFontOfSize:15];
[nextButton setImage:[UIImage imageNamed:@"icon_next"] forState:UIControlStateNormal];
[nextButton addTarget:self action:@selector(nextClicked:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:nextButton];
self.nextButton = nextButton;
}
- (void)previousClicked:(id)sender
{
NSDate *currentMonth = self.calendar.currentPage;
NSDate *previousMonth = [self.gregorian dateByAddingUnit:NSCalendarUnitMonth value:-1 toDate:currentMonth options:0];
[self.calendar setCurrentPage:previousMonth animated:YES];
}
- (void)nextClicked:(id)sender
{
NSDate *currentMonth = self.calendar.currentPage;
NSDate *nextMonth = [self.gregorian dateByAddingUnit:NSCalendarUnitMonth value:1 toDate:currentMonth options:0];
[self.calendar setCurrentPage:nextMonth animated:YES];
}
@end
================================================
FILE: Example-Objc/CalendarConfigViewController.h
================================================
//
// CalendarConfigViewController.h
// FSCalendar
//
// Created by Wenchao Ding on 2/15/15.
// Copyright (c) 2015 Wenchao Ding. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "FSCalendar.h"
NS_ASSUME_NONNULL_BEGIN
@interface CalendarConfigViewController : UITableViewController
@property (assign, nonatomic) NSInteger theme;
@property (assign, nonatomic) BOOL lunar;
@property (assign, nonatomic) NSUInteger firstWeekday;
@property (assign, nonatomic) FSCalendarScrollDirection scrollDirection;
@property (strong, nonatomic) NSDate *selectedDate;
@end
NS_ASSUME_NONNULL_END
================================================
FILE: Example-Objc/CalendarConfigViewController.m
================================================
//
// CalendarConfigViewController.m
// FSCalendar
//
// Created by Wenchao Ding on 2/15/15.
// Copyright (c) 2015 Wenchao Ding. All rights reserved.
//
#import "CalendarConfigViewController.h"
#import "FScalendar.h"
@interface CalendarConfigViewController ()
@property (weak, nonatomic) IBOutlet UIDatePicker *datePicker;
@end
@implementation CalendarConfigViewController
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [super tableView:tableView cellForRowAtIndexPath:indexPath];
switch (indexPath.section) {
case 0: {
cell.accessoryType = self.theme == indexPath.row ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
break;
}
case 1: {
cell.accessoryType = self.lunar ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
break;
}
case 2: {
cell.accessoryType = indexPath.row == 1 - self.scrollDirection ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
break;
}
case 4: {
cell.accessoryType = indexPath.row == self.firstWeekday - 1 ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
break;
}
default:
break;
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
switch (indexPath.section) {
case 0: {
self.theme = indexPath.row;
break;
}
case 1: {
self.lunar = !self.lunar;
break;
}
case 2: {
self.scrollDirection = (FSCalendarScrollDirection)(1-indexPath.row);
break;
}
case 3: {
self.selectedDate = self.datePicker.date;
break;
}
case 4: {
self.firstWeekday = indexPath.row + 1;
break;
}
default:
break;
}
[tableView reloadSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationAutomatic];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.05 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self performSegueWithIdentifier:@"unwind2StoryboardExample" sender:self];
});
}
@end
================================================
FILE: Example-Objc/DIYCalendarCell.h
================================================
//
// DIYCalendarCell.h
// FSCalendar
//
// Created by dingwenchao on 02/11/2016.
// Copyright © 2016 Wenchao Ding. All rights reserved.
//
#import <FSCalendar/FSCalendar.h>
typedef NS_ENUM(NSUInteger, SelectionType) {
SelectionTypeNone,
SelectionTypeSingle,
SelectionTypeLeftBorder,
SelectionTypeMiddle,
SelectionTypeRightBorder
};
@interface DIYCalendarCell : FSCalendarCell
@property (weak, nonatomic) UIImageView *circleImageView;
@property (weak, nonatomic) CAShapeLayer *selectionLayer;
@property (assign, nonatomic) SelectionType selectionType;
@end
================================================
FILE: Example-Objc/DIYCalendarCell.m
================================================
//
// DIYCalendarCell.m
// FSCalendar
//
// Created by dingwenchao on 02/11/2016.
// Copyright © 2016 Wenchao Ding. All rights reserved.
//
#import "DIYCalendarCell.h"
#import "FSCalendarExtensions.h"
@implementation DIYCalendarCell
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
UIImageView *circleImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"circle"]];
[self.contentView insertSubview:circleImageView atIndex:0];
self.circleImageView = circleImageView;
CAShapeLayer *selectionLayer = [[CAShapeLayer alloc] init];
selectionLayer.fillColor = [UIColor blackColor].CGColor;
selectionLayer.actions = @{@"hidden":[NSNull null]};
[self.contentView.layer insertSublayer:selectionLayer below:self.titleLabel.layer];
self.selectionLayer = selectionLayer;
self.shapeLayer.hidden = YES;
self.backgroundView = [[UIView alloc] initWithFrame:self.bounds];
self.backgroundView.backgroundColor = [[UIColor lightGrayColor] colorWithAlphaComponent:0.1];
}
return self;
}
- (void)layoutSubviews
{
[super layoutSubviews];
self.backgroundView.frame = CGRectInset(self.bounds, 1, 1);
self.circleImageView.frame = self.backgroundView.frame;
self.selectionLayer.frame = self.bounds;
if (self.selectionType == SelectionTypeMiddle) {
self.selectionLayer.path = [UIBezierPath bezierPathWithRect:self.selectionLayer.bounds].CGPath;
} else if (self.selectionType == SelectionTypeLeftBorder) {
self.selectionLayer.path = [UIBezierPath bezierPathWithRoundedRect:self.selectionLayer.bounds byRoundingCorners:UIRectCornerTopLeft|UIRectCornerBottomLeft cornerRadii:CGSizeMake(self.selectionLayer.fs_width/2, self.selectionLayer.fs_width/2)].CGPath;
} else if (self.selectionType == SelectionTypeRightBorder) {
self.selectionLayer.path = [UIBezierPath bezierPathWithRoundedRect:self.selectionLayer.bounds byRoundingCorners:UIRectCornerTopRight|UIRectCornerBottomRight cornerRadii:CGSizeMake(self.selectionLayer.fs_width/2, self.selectionLayer.fs_width/2)].CGPath;
} else if (self.selectionType == SelectionTypeSingle) {
CGFloat diameter = MIN(self.selectionLayer.fs_height, self.selectionLayer.fs_width);
self.selectionLayer.path = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(self.contentView.fs_width/2-diameter/2, self.contentView.fs_height/2-diameter/2, diameter, diameter)].CGPath;
}
}
- (void)configureAppearance
{
[super configureAppearance];
// Override the build-in appearance configuration
if (self.isPlaceholder) {
self.titleLabel.textColor = [UIColor lightGrayColor];
self.eventIndicator.hidden = YES;
}
}
- (void)setSelectionType:(SelectionType)selectionType
{
if (_selectionType != selectionType) {
_selectionType = selectionType;
[self setNeedsLayout];
}
}
@end
================================================
FILE: Example-Objc/DIYExampleViewController.h
================================================
//
// DIYExampleViewController.h
// FSCalendar
//
// Created by dingwenchao on 5/8/16.
// Copyright © 2016 Wenchao Ding. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface DIYExampleViewController : UIViewController
@end
================================================
FILE: Example-Objc/DIYExampleViewController.m
================================================
//
// DIYExampleViewController.m
// FSCalendar
//
// Created by dingwenchao on 5/8/16.
// Copyright © 2016 Wenchao Ding. All rights reserved.
//
#import "DIYExampleViewController.h"
#import "FSCalendar.h"
#import "DIYCalendarCell.h"
#import "FSCalendarExtensions.h"
@interface DIYExampleViewController () <FSCalendarDataSource,FSCalendarDelegate,FSCalendarDelegateAppearance>
@property (weak, nonatomic) FSCalendar *calendar;
@property (weak, nonatomic) UILabel *eventLabel;
@property (strong, nonatomic) NSCalendar *gregorian;
@property (strong, nonatomic) NSDateFormatter *dateFormatter;
- (void)configureCell:(FSCalendarCell *)cell forDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)position;
@end
@implementation DIYExampleViewController
- (instancetype)init
{
self = [super init];
if (self) {
self.title = @"FSCalendar";
}
return self;
}
- (void)loadView
{
UIView *view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
view.backgroundColor = [UIColor groupTableViewBackgroundColor];
self.view = view;
CGFloat height = [[UIDevice currentDevice].model hasPrefix:@"iPad"] ? 450 : 300;
FSCalendar *calendar = [[FSCalendar alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.navigationController.navigationBar.frame), view.frame.size.width, height)];
calendar.dataSource = self;
calendar.delegate = self;
calendar.swipeToChooseGesture.enabled = YES;
calendar.allowsMultipleSelection = YES;
[view addSubview:calendar];
self.calendar = calendar;
calendar.calendarHeaderView.backgroundColor = [[UIColor lightGrayColor] colorWithAlphaComponent:0.1];
calendar.calendarWeekdayView.backgroundColor = [[UIColor lightGrayColor] colorWithAlphaComponent:0.1];
calendar.appearance.eventSelectionColor = [UIColor whiteColor];
calendar.appearance.eventOffset = CGPointMake(0, -7);
calendar.today = nil; // Hide the today circle
[calendar registerClass:[DIYCalendarCell class] forCellReuseIdentifier:@"cell"];
UIPanGestureRecognizer *scopeGesture = [[UIPanGestureRecognizer alloc] initWithTarget:calendar action:@selector(handleScopeGesture:)];
[calendar addGestureRecognizer:scopeGesture];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(calendar.frame)+10, self.view.frame.size.width, 50)];
label.textAlignment = NSTextAlignmentCenter;
label.font = [UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline];
[self.view addSubview:label];
self.eventLabel = label;
NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:@""];
NSTextAttachment *attatchment = [[NSTextAttachment alloc] init];
attatchment.image = [UIImage imageNamed:@"icon_cat"];
attatchment.bounds = CGRectMake(0, -3, attatchment.image.size.width, attatchment.image.size.height);
[attributedText appendAttributedString:[NSAttributedString attributedStringWithAttachment:attatchment]];
[attributedText appendAttributedString:[[NSAttributedString alloc] initWithString:@" Hey Daily Event "]];
[attributedText appendAttributedString:[NSAttributedString attributedStringWithAttachment:attatchment]];
self.eventLabel.attributedText = attributedText.copy;
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.gregorian = [NSCalendar calendarWithIdentifier:NSCalendarIdentifierGregorian];
self.dateFormatter = [[NSDateFormatter alloc] init];
self.dateFormatter.dateFormat = @"yyyy-MM-dd";
[self.calendar selectDate:[self.gregorian dateByAddingUnit:NSCalendarUnitDay value:-1 toDate:[NSDate date] options:0] scrollToDate:NO];
[self.calendar selectDate:[NSDate date] scrollToDate:NO];
[self.calendar selectDate:[self.gregorian dateByAddingUnit:NSCalendarUnitDay value:1 toDate:[NSDate date] options:0] scrollToDate:NO];
// Uncomment this to perform an 'initial-week-scope'
// self.calendar.scope = FSCalendarScopeWeek;
// For UITest
self.calendar.accessibilityIdentifier = @"calendar";
}
- (void)dealloc
{
NSLog(@"%s",__FUNCTION__);
}
#pragma mark - FSCalendarDataSource
- (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar
{
return [self.dateFormatter dateFromString:@"2020-07-08"];
}
- (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar
{
return [self.gregorian dateByAddingUnit:NSCalendarUnitMonth value:5 toDate:[NSDate date] options:0];
}
- (NSString *)calendar:(FSCalendar *)calendar titleForDate:(NSDate *)date
{
if ([self.gregorian isDateInToday:date]) {
return @"今";
}
return nil;
}
- (FSCalendarCell *)calendar:(FSCalendar *)calendar cellForDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)monthPosition
{
DIYCalendarCell *cell = [calendar dequeueReusableCellWithIdentifier:@"cell" forDate:date atMonthPosition:monthPosition];
return cell;
}
- (void)calendar:(FSCalendar *)calendar willDisplayCell:(FSCalendarCell *)cell forDate:(NSDate *)date atMonthPosition: (FSCalendarMonthPosition)monthPosition
{
[self configureCell:cell forDate:date atMonthPosition:monthPosition];
}
- (NSInteger)calendar:(FSCalendar *)calendar numberOfEventsForDate:(NSDate *)date
{
return 2;
}
#pragma mark - FSCalendarDelegate
- (void)calendar:(FSCalendar *)calendar boundingRectWillChange:(CGRect)bounds animated:(BOOL)animated
{
calendar.frame = (CGRect){calendar.frame.origin,bounds.size};
self.eventLabel.frame = CGRectMake(0, CGRectGetMaxY(calendar.frame)+10, self.view.frame.size.width, 50);
}
- (BOOL)calendar:(FSCalendar *)calendar shouldSelectDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)monthPosition
{
return monthPosition == FSCalendarMonthPositionCurrent;
}
- (BOOL)calendar:(FSCalendar *)calendar shouldDeselectDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)monthPosition
{
return monthPosition == FSCalendarMonthPositionCurrent;
}
- (void)calendar:(FSCalendar *)calendar didSelectDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)monthPosition
{
NSLog(@"did select date %@",[self.dateFormatter stringFromDate:date]);
[self configureVisibleCells];
}
- (void)calendar:(FSCalendar *)calendar didDeselectDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)monthPosition
{
NSLog(@"did deselect date %@",[self.dateFormatter stringFromDate:date]);
[self configureVisibleCells];
}
- (NSArray<UIColor *> *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance eventDefaultColorsForDate:(NSDate *)date
{
if ([self.gregorian isDateInToday:date]) {
return @[[UIColor orangeColor]];
}
return @[appearance.eventDefaultColor];
}
#pragma mark - Private methods
- (void)configureVisibleCells
{
[self.calendar.visibleCells enumerateObjectsUsingBlock:^(__kindof FSCalendarCell * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSDate *date = [self.calendar dateForCell:obj];
FSCalendarMonthPosition position = [self.calendar monthPositionForCell:obj];
[self configureCell:obj forDate:date atMonthPosition:position];
}];
}
- (void)configureCell:(FSCalendarCell *)cell forDate:(NSDate *)date atMonthPosition:(FSCalendarMonthPosition)monthPosition
{
DIYCalendarCell *diyCell = (DIYCalendarCell *)cell;
// Custom today circle
diyCell.circleImageView.hidden = ![self.gregorian isDateInToday:date];
// Configure selection layer
if (monthPosition == FSCalendarMonthPositionCurrent) {
SelectionType selectionType = SelectionTypeNone;
if ([self.calendar.selectedDates containsObject:date]) {
NSDate *previousDate = [self.gregorian dateByAddingUnit:NSCalendarUnitDay value:-1 toDate:date options:0];
NSDate *nextDate = [self.gregorian dateByAddingUnit:NSCalendarUnitDay value:1 toDate:date options:0];
if ([self.calendar.selectedDates containsObject:date]) {
if ([self.calendar.selectedDates containsObject:previousDate] && [self.calendar.selectedDates containsObject:nextDate]) {
selectionType = SelectionTypeMiddle;
} else if ([self.calendar.selectedDates containsObject:previousDate] && [self.calendar.selectedDates containsObject:date]) {
selectionType = SelectionTypeRightBorder;
} else if ([self.calendar.selectedDates containsObject:nextDate]) {
selectionType = SelectionTypeLeftBorder;
} else {
selectionType = SelectionTypeSingle;
}
}
} else {
selectionType = SelectionTypeNone;
}
if (selectionType == SelectionTypeNone) {
diyCell.selectionLayer.hidden = YES;
return;
}
diyCell.selectionLayer.hidden = NO;
diyCell.selectionType = selectionType;
} else {
diyCell.circleImageView.hidden = YES;
diyCell.selectionLayer.hidden = YES;
}
}
@end
================================================
FILE: Example-Objc/DelegateAppearanceViewController.h
================================================
//
// RollViewController.h
// FSCalendar
//
// Created by dingwenchao on 10/16/15.
// Copyright (c) 2015 Wenchao Ding. All rights reserved.
//
#import <UIKit/UIKit.h>
#import "FSCalendar.h"
@interface DelegateAppearanceViewController : UIViewController
@end
================================================
FILE: Example-Objc/DelegateAppearanceViewController.m
================================================
//
// RollViewController.m
// FSCalendar
//
// Created by dingwenchao on 10/16/15.
// Copyright (c) 2015 Wenchao Ding. All rights reserved.
//
#import "DelegateAppearanceViewController.h"
#define kViolet [UIColor colorWithRed:170/255.0 green:114/255.0 blue:219/255.0 alpha:1.0]
NS_ASSUME_NONNULL_BEGIN
@interface DelegateAppearanceViewController()<FSCalendarDataSource,FSCalendarDelegate,FSCalendarDelegateAppearance>
@property (weak, nonatomic) FSCalendar *calendar;
@property (strong, nonatomic) NSCalendar *gregorian;
@property (strong, nonatomic) NSDateFormatter *dateFormatter1;
@property (strong, nonatomic) NSDateFormatter *dateFormatter2;
@property (strong, nonatomic) NSDictionary *fillSelectionColors;
@property (strong, nonatomic) NSDictionary *fillDefaultColors;
@property (strong, nonatomic) NSDictionary *borderDefaultColors;
@property (strong, nonatomic) NSDictionary *borderSelectionColors;
@property (strong, nonatomic) NSArray *datesWithEvent;
@property (strong, nonatomic) NSArray *datesWithMultipleEvents;
@end
NS_ASSUME_NONNULL_END
@implementation DelegateAppearanceViewController
#pragma mark - Life cycle
- (instancetype)init
{
self = [super init];
if (self) {
self.title = @"FSCalendar";
self.fillDefaultColors = @{@"2020/10/08":[UIColor purpleColor],
@"2020/10/06":[UIColor greenColor],
@"2020/10/18":[UIColor cyanColor],
@"2020/10/22":[UIColor yellowColor],
@"2020/11/08":[UIColor purpleColor],
@"2020/11/06":[UIColor greenColor],
@"2020/11/18":[UIColor cyanColor],
@"2020/11/22":[UIColor yellowColor],
@"2020/12/08":[UIColor purpleColor],
@"2020/12/06":[UIColor greenColor],
@"2020/12/18":[UIColor cyanColor],
@"2020/12/22":[UIColor magentaColor]};
self.fillSelectionColors = @{@"2020/10/08":[UIColor greenColor],
@"2020/10/06":[UIColor purpleColor],
@"2020/10/17":[UIColor grayColor],
@"2020/10/21":[UIColor cyanColor],
@"2020/11/08":[UIColor greenColor],
@"2020/11/06":[UIColor purpleColor],
@"2020/11/17":[UIColor grayColor],
@"2020/11/21":[UIColor cyanColor],
@"2020/12/08":[UIColor greenColor],
@"2020/12/06":[UIColor purpleColor],
@"2020/12/17":[UIColor grayColor],
@"2020/12/21":[UIColor cyanColor]};
self.borderDefaultColors = @{@"2020/10/08":[UIColor brownColor],
@"2020/10/17":[UIColor magentaColor],
@"2020/10/21":FSCalendarStandardSelectionColor,
@"2020/10/25":[UIColor blackColor],
@"2020/11/08":[UIColor brownColor],
@"2020/11/17":[UIColor magentaColor],
@"2020/11/21":FSCalendarStandardSelectionColor,
@"2020/11/25":[UIColor blackColor],
@"2020/12/08":[UIColor brownColor],
@"2020/12/17":[UIColor magentaColor],
@"2020/12/21":FSCalendarStandardSelectionColor,
@"2020/12/25":[UIColor blackColor]};
self.borderSelectionColors = @{@"2020/10/08":[UIColor redColor],
@"2020/10/17":[UIColor purpleColor],
@"2020/10/21":FSCalendarStandardSelectionColor,
@"2020/10/25":FSCalendarStandardTodayColor,
@"2020/11/08":[UIColor redColor],
@"2020/11/17":[UIColor purpleColor],
@"2020/11/21":FSCalendarStandardSelectionColor,
@"2020/11/25":FSCalendarStandardTodayColor,
@"2020/12/08":[UIColor redColor],
@"2020/12/17":[UIColor purpleColor],
@"2020/12/21":FSCalendarStandardSelectionColor,
@"2020/12/25":FSCalendarStandardTodayColor};
self.datesWithEvent = @[@"2020-10-03",
@"2020-10-06",
@"2020-10-12",
@"2020-10-25"];
self.datesWithMultipleEvents = @[@"2020-10-08",
@"2020-10-16",
@"2020-10-20",
@"2020-10-28"];
self.gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
self.dateFormatter1 = [[NSDateFormatter alloc] init];
self.dateFormatter1.dateFormat = @"yyyy/MM/dd";
self.dateFormatter2 = [[NSDateFormatter alloc] init];
self.dateFormatter2.dateFormat = @"yyyy-MM-dd";
}
return self;
}
- (void)loadView
{
UIView *view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
view.backgroundColor = [UIColor groupTableViewBackgroundColor];
self.view = view;
CGFloat height = [[UIDevice currentDevice].model hasPrefix:@"iPad"] ? 450 : 300;
FSCalendar *calendar = [[FSCalendar alloc] initWithFrame:CGRectMake(0, 64, self.view.bounds.size.width, height)];
calendar.dataSource = self;
calendar.delegate = self;
calendar.allowsMultipleSelection = YES;
calendar.swipeToChooseGesture.enabled = YES;
calendar.backgroundColor = [UIColor whiteColor];
calendar.appearance.caseOptions = FSCalendarCaseOptionsHeaderUsesUpperCase|FSCalendarCaseOptionsWeekdayUsesSingleUpperCase;
[self.view addSubview:calendar];
self.calendar = calendar;
[calendar setCurrentPage:[self.dateFormatter1 dateFromString:@"2020/10/03"] animated:NO];
UIBarButtonItem *todayItem = [[UIBarButtonItem alloc] initWithTitle:@"TODAY" style:UIBarButtonItemStylePlain target:self action:@selector(todayItemClicked:)];
self.navigationItem.rightBarButtonItem = todayItem;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// For UITest
self.calendar.accessibilityIdentifier = @"calendar";
}
- (void)dealloc
{
NSLog(@"%s",__FUNCTION__);
}
#pragma mark - Target actions
- (void)todayItemClicked:(id)sender
{
[_calendar setCurrentPage:[NSDate date] animated:NO];
}
#pragma mark - <FSCalendarDataSource>
- (NSInteger)calendar:(FSCalendar *)calendar numberOfEventsForDate:(NSDate *)date
{
NSString *dateString = [self.dateFormatter2 stringFromDate:date];
if ([_datesWithEvent containsObject:dateString]) {
return 1;
}
if ([_datesWithMultipleEvents containsObject:dateString]) {
return 3;
}
return 0;
}
#pragma mark - <FSCalendarDelegateAppearance>
- (NSArray *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance eventDefaultColorsForDate:(NSDate *)date
{
NSString *dateString = [self.dateFormatter2 stringFromDate:date];
if ([_datesWithMultipleEvents containsObject:dateString]) {
return @[[UIColor magentaColor],appearance.eventDefaultColor,[UIColor blackColor]];
}
return nil;
}
- (UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance fillSelectionColorForDate:(NSDate *)date
{
NSString *key = [self.dateFormatter1 stringFromDate:date];
if ([_fillSelectionColors.allKeys containsObject:key]) {
return _fillSelectionColors[key];
}
return appearance.selectionColor;
}
- (UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance fillDefaultColorForDate:(NSDate *)date
{
NSString *key = [self.dateFormatter1 stringFromDate:date];
if ([_fillDefaultColors.allKeys containsObject:key]) {
return _fillDefaultColors[key];
}
return nil;
}
- (UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance borderDefaultColorForDate:(NSDate *)date
{
NSString *key = [self.dateFormatter1 stringFromDate:date];
if ([_borderDefaultColors.allKeys containsObject:key]) {
return _borderDefaultColors[key];
}
return appearance.borderDefaultColor;
}
- (UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance borderSelectionColorForDate:(NSDate *)date
{
NSString *key = [self.dateFormatter1 stringFromDate:date];
if ([_borderSelectionColors.allKeys containsObject:key]) {
return _borderSelectionColors[key];
}
return appearance.borderSelectionColor;
}
- (CGFloat)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance borderRadiusForDate:(nonnull NSDate *)date
{
if ([@[@8,@17,@21,@25] containsObject:@([self.gregorian component:NSCalendarUnitDay fromDate:date])]) {
return 0.0;
}
return 1.0;
}
@end
================================================
FILE: Example-Objc/FSCalendar.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
30024F951BD1015300B1C04C /* DelegateAppearanceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 30024F941BD1015300B1C04C /* DelegateAppearanceViewController.m */; };
30145EF11D6D754D00AA5F72 /* FSCalendarTests.m in Sources */ = {isa = PBXBuildFile; fileRef = EE638CF51B8A1F550006DD1A /* FSCalendarTests.m */; };
301F79CB1DFD39E700D8631E /* FSCalendarDelegationProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 301F79C91DFD39E700D8631E /* FSCalendarDelegationProxy.h */; settings = {ATTRIBUTES = (Private, ); }; };
301F79CC1DFD39E700D8631E /* FSCalendarDelegationProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 301F79CA1DFD39E700D8631E /* FSCalendarDelegationProxy.m */; };
301F79CD1DFD39E700D8631E /* FSCalendarDelegationProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 301F79CA1DFD39E700D8631E /* FSCalendarDelegationProxy.m */; };
301F93451D8802D90028BEC8 /* FSCalendarExtensionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 301F93441D8802D90028BEC8 /* FSCalendarExtensionTest.m */; };
302811471DCA296400F8CED2 /* DIYCalendarCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 302811461DCA296400F8CED2 /* DIYCalendarCell.m */; };
3031F3EF1CDEDFC500C174D7 /* DIYExampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3031F3EE1CDEDFC500C174D7 /* DIYExampleViewController.m */; };
3055B1C21DA9323A002AFA13 /* FSCalendarExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 3055B1C01DA9323A002AFA13 /* FSCalendarExtensions.h */; settings = {ATTRIBUTES = (Private, ); }; };
3055B1C31DA9323A002AFA13 /* FSCalendarExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3055B1C11DA9323A002AFA13 /* FSCalendarExtensions.m */; };
3055B1C41DA9323A002AFA13 /* FSCalendarExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3055B1C11DA9323A002AFA13 /* FSCalendarExtensions.m */; };
3055B1C51DA9323A002AFA13 /* FSCalendarExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3055B1C11DA9323A002AFA13 /* FSCalendarExtensions.m */; };
308B58D81CC08FFA004E812D /* ButtonsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 308B58D71CC08FFA004E812D /* ButtonsViewController.m */; };
3092253A1B905C4300123031 /* FSCalendarConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 309225381B905C4300123031 /* FSCalendarConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
3092253B1B905C4300123031 /* FSCalendarConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 309225391B905C4300123031 /* FSCalendarConstants.m */; };
3092253C1B905C4300123031 /* FSCalendarConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 309225391B905C4300123031 /* FSCalendarConstants.m */; };
3095398F1C38D66C00BD37AA /* FSCalendarCollectionViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 3095398D1C38D66C00BD37AA /* FSCalendarCollectionViewLayout.h */; settings = {ATTRIBUTES = (Private, ); }; };
309539901C38D66C00BD37AA /* FSCalendarCollectionViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 3095398E1C38D66C00BD37AA /* FSCalendarCollectionViewLayout.m */; };
309539911C38D66C00BD37AA /* FSCalendarCollectionViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 3095398E1C38D66C00BD37AA /* FSCalendarCollectionViewLayout.m */; };
309A42011D992C4A004E86CB /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 309A42001D992C4A004E86CB /* Images.xcassets */; };
30A495541DCAD9E6000B2F31 /* FSCalendarWeekdayView.h in Headers */ = {isa = PBXBuildFile; fileRef = 30A495521DCAD9E6000B2F31 /* FSCalendarWeekdayView.h */; settings = {ATTRIBUTES = (Public, ); }; };
30A495551DCAD9E6000B2F31 /* FSCalendarWeekdayView.m in Sources */ = {isa = PBXBuildFile; fileRef = 30A495531DCAD9E6000B2F31 /* FSCalendarWeekdayView.m */; };
30A495561DCAD9E6000B2F31 /* FSCalendarWeekdayView.m in Sources */ = {isa = PBXBuildFile; fileRef = 30A495531DCAD9E6000B2F31 /* FSCalendarWeekdayView.m */; };
30B0BA9B1B8D8BC9004B9476 /* FSCalendar.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = EE638CE21B8A1F550006DD1A /* FSCalendar.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
30B0BAD01B8D8E23004B9476 /* FSCalendar.m in Sources */ = {isa = PBXBuildFile; fileRef = 30B0BAC01B8D8E22004B9476 /* FSCalendar.m */; };
30B0BAD11B8D8E23004B9476 /* FSCalendarAppearance.m in Sources */ = {isa = PBXBuildFile; fileRef = 30B0BAC21B8D8E22004B9476 /* FSCalendarAppearance.m */; };
30B0BAD21B8D8E23004B9476 /* FSCalendarCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 30B0BAC41B8D8E22004B9476 /* FSCalendarCell.m */; };
30B0BAD31B8D8E23004B9476 /* FSCalendarHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 30B0BAC71B8D8E22004B9476 /* FSCalendarHeaderView.m */; };
30B0BAF61B8D9AC1004B9476 /* FSCalendarAppearance.m in Sources */ = {isa = PBXBuildFile; fileRef = 30B0BAC21B8D8E22004B9476 /* FSCalendarAppearance.m */; };
30B0BAF71B8D9AC1004B9476 /* FSCalendarCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 30B0BAC41B8D8E22004B9476 /* FSCalendarCell.m */; };
30B0BAF81B8D9AC1004B9476 /* FSCalendarHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 30B0BAC71B8D8E22004B9476 /* FSCalendarHeaderView.m */; };
30B0BAFC1B8D9AD4004B9476 /* FSCalendar.h in Headers */ = {isa = PBXBuildFile; fileRef = 30B0BABF1B8D8E22004B9476 /* FSCalendar.h */; settings = {ATTRIBUTES = (Public, ); }; };
30B0BB011B8D9B6C004B9476 /* FSCalendarAppearance.h in Headers */ = {isa = PBXBuildFile; fileRef = 30B0BAC11B8D8E22004B9476 /* FSCalendarAppearance.h */; settings = {ATTRIBUTES = (Public, ); }; };
30B0BB021B8D9B6C004B9476 /* FSCalendarCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 30B0BAC31B8D8E22004B9476 /* FSCalendarCell.h */; settings = {ATTRIBUTES = (Public, ); }; };
30B0BB031B8D9B6D004B9476 /* FSCalendarDynamicHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 30B0BAC51B8D8E22004B9476 /* FSCalendarDynamicHeader.h */; settings = {ATTRIBUTES = (Private, ); }; };
30B0BB041B8D9B6D004B9476 /* FSCalendarHeaderView.h in Headers */ = {isa = PBXBuildFile; fileRef = 30B0BAC61B8D8E22004B9476 /* FSCalendarHeaderView.h */; settings = {ATTRIBUTES = (Public, ); }; };
30CEF9001C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.h in Headers */ = {isa = PBXBuildFile; fileRef = 30CEF8FE1C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.h */; settings = {ATTRIBUTES = (Private, ); }; };
30CEF9011C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.m in Sources */ = {isa = PBXBuildFile; fileRef = 30CEF8FF1C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.m */; };
30CEF9021C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.m in Sources */ = {isa = PBXBuildFile; fileRef = 30CEF8FF1C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.m */; };
30D55B101C90240000BB43D5 /* HidePlaceholderViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 30D55B0F1C90240000BB43D5 /* HidePlaceholderViewController.m */; };
30DBE3C41DC641AD005A22B7 /* FSCalendarCalculator.h in Headers */ = {isa = PBXBuildFile; fileRef = 30DBE3C21DC641AD005A22B7 /* FSCalendarCalculator.h */; settings = {ATTRIBUTES = (Private, ); }; };
30DBE3C51DC641AD005A22B7 /* FSCalendarCalculator.m in Sources */ = {isa = PBXBuildFile; fileRef = 30DBE3C31DC641AD005A22B7 /* FSCalendarCalculator.m */; };
30DBE3C61DC641AD005A22B7 /* FSCalendarCalculator.m in Sources */ = {isa = PBXBuildFile; fileRef = 30DBE3C31DC641AD005A22B7 /* FSCalendarCalculator.m */; };
30F4C90F1E07C12B00D2EC4D /* FSCalendarDelegationFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 30F4C90D1E07C12B00D2EC4D /* FSCalendarDelegationFactory.h */; settings = {ATTRIBUTES = (Private, ); }; };
30F4C9101E07C12B00D2EC4D /* FSCalendarDelegationFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 30F4C90E1E07C12B00D2EC4D /* FSCalendarDelegationFactory.m */; };
30F4C9111E07C12B00D2EC4D /* FSCalendarDelegationFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 30F4C90E1E07C12B00D2EC4D /* FSCalendarDelegationFactory.m */; };
30F4C9121E07C12B00D2EC4D /* FSCalendarDelegationFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 30F4C90E1E07C12B00D2EC4D /* FSCalendarDelegationFactory.m */; };
30F5D8561B9FC33400C1C201 /* FSCalendar.m in Sources */ = {isa = PBXBuildFile; fileRef = 30B0BAC01B8D8E22004B9476 /* FSCalendar.m */; };
30FCB3961BAAD112002B87AD /* FSCalendarStickyHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 30FCB3941BAAD112002B87AD /* FSCalendarStickyHeader.h */; settings = {ATTRIBUTES = (Private, ); }; };
30FCB3971BAAD112002B87AD /* FSCalendarStickyHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 30FCB3951BAAD112002B87AD /* FSCalendarStickyHeader.m */; };
30FCB3981BAAD112002B87AD /* FSCalendarStickyHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 30FCB3951BAAD112002B87AD /* FSCalendarStickyHeader.m */; };
50F2ADE8216D954A00CC481F /* FSCalendarSeparatorDecorationView.h in Headers */ = {isa = PBXBuildFile; fileRef = 50F2ADE6216D954A00CC481F /* FSCalendarSeparatorDecorationView.h */; };
50F2ADE9216D954A00CC481F /* FSCalendarSeparatorDecorationView.m in Sources */ = {isa = PBXBuildFile; fileRef = 50F2ADE7216D954A00CC481F /* FSCalendarSeparatorDecorationView.m */; };
50F2ADEA216D954A00CC481F /* FSCalendarSeparatorDecorationView.m in Sources */ = {isa = PBXBuildFile; fileRef = 50F2ADE7216D954A00CC481F /* FSCalendarSeparatorDecorationView.m */; };
EE52AE181B91E68A00016662 /* FSCalendarScopeExampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EE52AE171B91E68A00016662 /* FSCalendarScopeExampleViewController.m */; };
EE638CC31B89DB6E0006DD1A /* LoadViewExampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EE638CC21B89DB6E0006DD1A /* LoadViewExampleViewController.m */; };
EE638CC91B89DB940006DD1A /* CalendarConfigViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EE638CC81B89DB940006DD1A /* CalendarConfigViewController.m */; };
EE638CCB1B89DBAC0006DD1A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = EE638CCA1B89DBAC0006DD1A /* main.m */; };
EE638CCE1B89DBD80006DD1A /* StoryboardExampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EE638CCD1B89DBD80006DD1A /* StoryboardExampleViewController.m */; };
EE638CD31B89DBE90006DD1A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = EE638CD01B89DBE90006DD1A /* AppDelegate.m */; };
EE638CD41B89DBE90006DD1A /* FSTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EE638CD21B89DBE90006DD1A /* FSTableViewController.m */; };
EE638CDA1B89DC0A0006DD1A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = EE638CD71B89DC090006DD1A /* Main.storyboard */; };
EEC9C0391BDC9E7000383A07 /* FSCalendarCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = EEC9C0371BDC9E7000383A07 /* FSCalendarCollectionView.h */; settings = {ATTRIBUTES = (Private, ); }; };
EEC9C03A1BDC9E7000383A07 /* FSCalendarCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = EEC9C0381BDC9E7000383A07 /* FSCalendarCollectionView.m */; };
EEC9C03B1BDC9E7000383A07 /* FSCalendarCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = EEC9C0381BDC9E7000383A07 /* FSCalendarCollectionView.m */; };
EECA10F81BA9C0E400945B83 /* FullScreenExampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = EECA10F71BA9C0E400945B83 /* FullScreenExampleViewController.m */; };
F9384A651E3ACEFB001601E0 /* FSCalendarExampleUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = F9384A641E3ACEFB001601E0 /* FSCalendarExampleUITests.m */; };
F9564BF01E2DB8CA00FC9342 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9564BEF1E2DB8CA00FC9342 /* LaunchScreen.xib */; };
F971A0C41F2651A7000369FD /* LunarFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = F971A0C31F2651A7000369FD /* LunarFormatter.m */; };
F988B1C81EA6046700609E59 /* RangePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F988B1C71EA6046700609E59 /* RangePickerViewController.m */; };
F988B1CB1EA6054400609E59 /* RangePickerCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F988B1CA1EA6054400609E59 /* RangePickerCell.m */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
30671DCC1D6D574C00BCFC4E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = EE0D7FBF1B89C5D3003C287B /* Project object */;
proxyType = 1;
remoteGlobalIDString = EE0D7FC61B89C5D3003C287B;
remoteInfo = FSCalendarExample;
};
30B0BA961B8D8B02004B9476 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = EE0D7FBF1B89C5D3003C287B /* Project object */;
proxyType = 1;
remoteGlobalIDString = EE638CE11B8A1F550006DD1A;
remoteInfo = FSCalendar;
};
F9384A671E3ACEFB001601E0 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = EE0D7FBF1B89C5D3003C287B /* Project object */;
proxyType = 1;
remoteGlobalIDString = EE0D7FC61B89C5D3003C287B;
remoteInfo = FSCalendarExample;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
EE638CFE1B8A1F550006DD1A /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
30B0BA9B1B8D8BC9004B9476 /* FSCalendar.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
30024F931BD1015300B1C04C /* DelegateAppearanceViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DelegateAppearanceViewController.h; sourceTree = SOURCE_ROOT; };
30024F941BD1015300B1C04C /* DelegateAppearanceViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DelegateAppearanceViewController.m; sourceTree = SOURCE_ROOT; };
301F79C91DFD39E700D8631E /* FSCalendarDelegationProxy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarDelegationProxy.h; sourceTree = "<group>"; };
301F79CA1DFD39E700D8631E /* FSCalendarDelegationProxy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarDelegationProxy.m; sourceTree = "<group>"; };
301F93441D8802D90028BEC8 /* FSCalendarExtensionTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarExtensionTest.m; sourceTree = "<group>"; };
302811451DCA296400F8CED2 /* DIYCalendarCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = DIYCalendarCell.h; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
302811461DCA296400F8CED2 /* DIYCalendarCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = DIYCalendarCell.m; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
3031F3ED1CDEDFC500C174D7 /* DIYExampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = DIYExampleViewController.h; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
3031F3EE1CDEDFC500C174D7 /* DIYExampleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = DIYExampleViewController.m; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
3055B1C01DA9323A002AFA13 /* FSCalendarExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarExtensions.h; sourceTree = "<group>"; };
3055B1C11DA9323A002AFA13 /* FSCalendarExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarExtensions.m; sourceTree = "<group>"; };
30671DC71D6D574C00BCFC4E /* FSCalendarTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FSCalendarTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
308B58D61CC08FFA004E812D /* ButtonsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ButtonsViewController.h; sourceTree = SOURCE_ROOT; };
308B58D71CC08FFA004E812D /* ButtonsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ButtonsViewController.m; sourceTree = SOURCE_ROOT; };
309225381B905C4300123031 /* FSCalendarConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarConstants.h; sourceTree = "<group>"; };
309225391B905C4300123031 /* FSCalendarConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarConstants.m; sourceTree = "<group>"; };
3095398D1C38D66C00BD37AA /* FSCalendarCollectionViewLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarCollectionViewLayout.h; sourceTree = "<group>"; };
3095398E1C38D66C00BD37AA /* FSCalendarCollectionViewLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarCollectionViewLayout.m; sourceTree = "<group>"; };
309A42001D992C4A004E86CB /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = SOURCE_ROOT; };
30A495521DCAD9E6000B2F31 /* FSCalendarWeekdayView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarWeekdayView.h; sourceTree = "<group>"; };
30A495531DCAD9E6000B2F31 /* FSCalendarWeekdayView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarWeekdayView.m; sourceTree = "<group>"; };
30B0BABF1B8D8E22004B9476 /* FSCalendar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendar.h; sourceTree = "<group>"; };
30B0BAC01B8D8E22004B9476 /* FSCalendar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = FSCalendar.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
30B0BAC11B8D8E22004B9476 /* FSCalendarAppearance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarAppearance.h; sourceTree = "<group>"; };
30B0BAC21B8D8E22004B9476 /* FSCalendarAppearance.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarAppearance.m; sourceTree = "<group>"; };
30B0BAC31B8D8E22004B9476 /* FSCalendarCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = FSCalendarCell.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
30B0BAC41B8D8E22004B9476 /* FSCalendarCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarCell.m; sourceTree = "<group>"; };
30B0BAC51B8D8E22004B9476 /* FSCalendarDynamicHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarDynamicHeader.h; sourceTree = "<group>"; };
30B0BAC61B8D8E22004B9476 /* FSCalendarHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarHeaderView.h; sourceTree = "<group>"; };
30B0BAC71B8D8E22004B9476 /* FSCalendarHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarHeaderView.m; sourceTree = "<group>"; };
30CEF8FE1C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarTransitionCoordinator.h; sourceTree = "<group>"; };
30CEF8FF1C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarTransitionCoordinator.m; sourceTree = "<group>"; };
30D55B0E1C90240000BB43D5 /* HidePlaceholderViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HidePlaceholderViewController.h; sourceTree = SOURCE_ROOT; };
30D55B0F1C90240000BB43D5 /* HidePlaceholderViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HidePlaceholderViewController.m; sourceTree = SOURCE_ROOT; };
30DBE3C21DC641AD005A22B7 /* FSCalendarCalculator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarCalculator.h; sourceTree = "<group>"; };
30DBE3C31DC641AD005A22B7 /* FSCalendarCalculator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarCalculator.m; sourceTree = "<group>"; };
30F4C90D1E07C12B00D2EC4D /* FSCalendarDelegationFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarDelegationFactory.h; sourceTree = "<group>"; };
30F4C90E1E07C12B00D2EC4D /* FSCalendarDelegationFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarDelegationFactory.m; sourceTree = "<group>"; };
30FCB3941BAAD112002B87AD /* FSCalendarStickyHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarStickyHeader.h; sourceTree = "<group>"; };
30FCB3951BAAD112002B87AD /* FSCalendarStickyHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarStickyHeader.m; sourceTree = "<group>"; };
50F2ADE6216D954A00CC481F /* FSCalendarSeparatorDecorationView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FSCalendarSeparatorDecorationView.h; sourceTree = "<group>"; };
50F2ADE7216D954A00CC481F /* FSCalendarSeparatorDecorationView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FSCalendarSeparatorDecorationView.m; sourceTree = "<group>"; };
9C88197F25F26B2F00E180CD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
EE0D7FC71B89C5D3003C287B /* FSCalendarExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FSCalendarExample.app; sourceTree = BUILT_PRODUCTS_DIR; };
EE0D7FCB1B89C5D3003C287B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
EE52AE161B91E68A00016662 /* FSCalendarScopeExampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarScopeExampleViewController.h; sourceTree = SOURCE_ROOT; };
EE52AE171B91E68A00016662 /* FSCalendarScopeExampleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarScopeExampleViewController.m; sourceTree = SOURCE_ROOT; };
EE638CC11B89DB6E0006DD1A /* LoadViewExampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoadViewExampleViewController.h; sourceTree = SOURCE_ROOT; };
EE638CC21B89DB6E0006DD1A /* LoadViewExampleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoadViewExampleViewController.m; sourceTree = SOURCE_ROOT; };
EE638CC71B89DB940006DD1A /* CalendarConfigViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CalendarConfigViewController.h; sourceTree = SOURCE_ROOT; };
EE638CC81B89DB940006DD1A /* CalendarConfigViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CalendarConfigViewController.m; sourceTree = SOURCE_ROOT; };
EE638CCA1B89DBAC0006DD1A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = SOURCE_ROOT; };
EE638CCC1B89DBD80006DD1A /* StoryboardExampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StoryboardExampleViewController.h; sourceTree = SOURCE_ROOT; };
EE638CCD1B89DBD80006DD1A /* StoryboardExampleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = StoryboardExampleViewController.m; sourceTree = SOURCE_ROOT; };
EE638CCF1B89DBE90006DD1A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
EE638CD01B89DBE90006DD1A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
EE638CD11B89DBE90006DD1A /* FSTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSTableViewController.h; sourceTree = SOURCE_ROOT; };
EE638CD21B89DBE90006DD1A /* FSTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = FSTableViewController.m; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
EE638CD81B89DC0A0006DD1A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = SOURCE_ROOT; };
EE638CE21B8A1F550006DD1A /* FSCalendar.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FSCalendar.framework; sourceTree = BUILT_PRODUCTS_DIR; };
EE638CF41B8A1F550006DD1A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
EE638CF51B8A1F550006DD1A /* FSCalendarTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FSCalendarTests.m; sourceTree = "<group>"; };
EEC9C0371BDC9E7000383A07 /* FSCalendarCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FSCalendarCollectionView.h; sourceTree = "<group>"; };
EEC9C0381BDC9E7000383A07 /* FSCalendarCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FSCalendarCollectionView.m; sourceTree = "<group>"; };
EECA10F61BA9C0E400945B83 /* FullScreenExampleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FullScreenExampleViewController.h; sourceTree = SOURCE_ROOT; };
EECA10F71BA9C0E400945B83 /* FullScreenExampleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FullScreenExampleViewController.m; sourceTree = SOURCE_ROOT; };
F9384A621E3ACEFB001601E0 /* FSCalendarExampleUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FSCalendarExampleUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
F9384A641E3ACEFB001601E0 /* FSCalendarExampleUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FSCalendarExampleUITests.m; sourceTree = "<group>"; };
F9384A661E3ACEFB001601E0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
F9564BEF1E2DB8CA00FC9342 /* LaunchScreen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LaunchScreen.xib; sourceTree = SOURCE_ROOT; };
F971A0C21F2651A7000369FD /* LunarFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LunarFormatter.h; sourceTree = SOURCE_ROOT; };
F971A0C31F2651A7000369FD /* LunarFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LunarFormatter.m; sourceTree = SOURCE_ROOT; };
F988B1C61EA6046700609E59 /* RangePickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RangePickerViewController.h; sourceTree = SOURCE_ROOT; };
F988B1C71EA6046700609E59 /* RangePickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RangePickerViewController.m; sourceTree = SOURCE_ROOT; };
F988B1C91EA6054400609E59 /* RangePickerCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RangePickerCell.h; sourceTree = SOURCE_ROOT; };
F988B1CA1EA6054400609E59 /* RangePickerCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RangePickerCell.m; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
30671DC41D6D574C00BCFC4E /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
EE0D7FC41B89C5D3003C287B /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
EE638CDE1B8A1F550006DD1A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
F9384A5F1E3ACEFB001601E0 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
30024F921BD1013D00B1C04C /* Delegate Appearance */ = {
isa = PBXGroup;
children = (
30024F931BD1015300B1C04C /* DelegateAppearanceViewController.h */,
30024F941BD1015300B1C04C /* DelegateAppearanceViewController.m */,
);
name = "Delegate Appearance";
sourceTree = "<group>";
};
3031F3EC1CDEDFA700C174D7 /* DIY */ = {
isa = PBXGroup;
children = (
3031F3ED1CDEDFC500C174D7 /* DIYExampleViewController.h */,
3031F3EE1CDEDFC500C174D7 /* DIYExampleViewController.m */,
302811451DCA296400F8CED2 /* DIYCalendarCell.h */,
302811461DCA296400F8CED2 /* DIYCalendarCell.m */,
);
name = DIY;
sourceTree = "<group>";
};
308B58D51CC08FA4004E812D /* Prev-Next-Buttons */ = {
isa = PBXGroup;
children = (
308B58D61CC08FFA004E812D /* ButtonsViewController.h */,
308B58D71CC08FFA004E812D /* ButtonsViewController.m */,
);
name = "Prev-Next-Buttons";
sourceTree = "<group>";
};
30B0BABC1B8D8E22004B9476 /* FSCalendar */ = {
isa = PBXGroup;
children = (
9C88197F25F26B2F00E180CD /* Info.plist */,
30B0BABF1B8D8E22004B9476 /* FSCalendar.h */,
30B0BAC01B8D8E22004B9476 /* FSCalendar.m */,
30B0BAC11B8D8E22004B9476 /* FSCalendarAppearance.h */,
30B0BAC21B8D8E22004B9476 /* FSCalendarAppearance.m */,
30DBE3C21DC641AD005A22B7 /* FSCalendarCalculator.h */,
30DBE3C31DC641AD005A22B7 /* FSCalendarCalculator.m */,
30B0BAC31B8D8E22004B9476 /* FSCalendarCell.h */,
30B0BAC41B8D8E22004B9476 /* FSCalendarCell.m */,
EEC9C0371BDC9E7000383A07 /* FSCalendarCollectionView.h */,
EEC9C0381BDC9E7000383A07 /* FSCalendarCollectionView.m */,
3095398D1C38D66C00BD37AA /* FSCalendarCollectionViewLayout.h */,
3095398E1C38D66C00BD37AA /* FSCalendarCollectionViewLayout.m */,
50F2ADE6216D954A00CC481F /* FSCalendarSeparatorDecorationView.h */,
50F2ADE7216D954A00CC481F /* FSCalendarSeparatorDecorationView.m */,
30B0BAC61B8D8E22004B9476 /* FSCalendarHeaderView.h */,
30B0BAC71B8D8E22004B9476 /* FSCalendarHeaderView.m */,
30A495521DCAD9E6000B2F31 /* FSCalendarWeekdayView.h */,
30A495531DCAD9E6000B2F31 /* FSCalendarWeekdayView.m */,
30FCB3941BAAD112002B87AD /* FSCalendarStickyHeader.h */,
30FCB3951BAAD112002B87AD /* FSCalendarStickyHeader.m */,
30CEF8FE1C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.h */,
30CEF8FF1C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.m */,
301F79C91DFD39E700D8631E /* FSCalendarDelegationProxy.h */,
301F79CA1DFD39E700D8631E /* FSCalendarDelegationProxy.m */,
30F4C90D1E07C12B00D2EC4D /* FSCalendarDelegationFactory.h */,
30F4C90E1E07C12B00D2EC4D /* FSCalendarDelegationFactory.m */,
3055B1C01DA9323A002AFA13 /* FSCalendarExtensions.h */,
3055B1C11DA9323A002AFA13 /* FSCalendarExtensions.m */,
309225381B905C4300123031 /* FSCalendarConstants.h */,
309225391B905C4300123031 /* FSCalendarConstants.m */,
30B0BAC51B8D8E22004B9476 /* FSCalendarDynamicHeader.h */,
);
name = FSCalendar;
path = ../FSCalendar;
sourceTree = "<group>";
};
30D55B0D1C9023E400BB43D5 /* Hide Placeholders */ = {
isa = PBXGroup;
children = (
30D55B0E1C90240000BB43D5 /* HidePlaceholderViewController.h */,
30D55B0F1C90240000BB43D5 /* HidePlaceholderViewController.m */,
);
name = "Hide Placeholders";
sourceTree = "<group>";
};
EE0D7FBE1B89C5D3003C287B = {
isa = PBXGroup;
children = (
30B0BABC1B8D8E22004B9476 /* FSCalendar */,
EE0D7FC91B89C5D3003C287B /* Example */,
EE638CF21B8A1F550006DD1A /* FSCalendarTests */,
F9384A631E3ACEFB001601E0 /* FSCalendarExampleUITests */,
EE0D7FC81B89C5D3003C287B /* Products */,
);
sourceTree = "<group>";
};
EE0D7FC81B89C5D3003C287B /* Products */ = {
isa = PBXGroup;
children = (
EE0D7FC71B89C5D3003C287B /* FSCalendarExample.app */,
EE638CE21B8A1F550006DD1A /* FSCalendar.framework */,
30671DC71D6D574C00BCFC4E /* FSCalendarTests.xctest */,
F9384A621E3ACEFB001601E0 /* FSCalendarExampleUITests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
EE0D7FC91B89C5D3003C287B /* Example */ = {
isa = PBXGroup;
children = (
EE638CD71B89DC090006DD1A /* Main.storyboard */,
EE638CCF1B89DBE90006DD1A /* AppDelegate.h */,
EE638CD01B89DBE90006DD1A /* AppDelegate.m */,
EE638CD11B89DBE90006DD1A /* FSTableViewController.h */,
EE638CD21B89DBE90006DD1A /* FSTableViewController.m */,
F971A0C11F265166000369FD /* LunarFormatter */,
F94A976E1EA6036E004F8F4D /* Range Picker */,
3031F3EC1CDEDFA700C174D7 /* DIY */,
308B58D51CC08FA4004E812D /* Prev-Next-Buttons */,
30D55B0D1C9023E400BB43D5 /* Hide Placeholders */,
30024F921BD1013D00B1C04C /* Delegate Appearance */,
EECA10F51BA9BF9B00945B83 /* Fullscreen Example */,
EE52AE151B91E65D00016662 /* FSCalendarScope Example */,
EE0D80241B89C868003C287B /* Storyboard Example */,
EE0D80231B89C853003C287B /* LoadView Example */,
EE0D7FCA1B89C5D3003C287B /* Supporting Files */,
);
name = Example;
sourceTree = "<group>";
};
EE0D7FCA1B89C5D3003C287B /* Supporting Files */ = {
isa = PBXGroup;
children = (
F9564BEF1E2DB8CA00FC9342 /* LaunchScreen.xib */,
309A42001D992C4A004E86CB /* Images.xcassets */,
EE0D7FCB1B89C5D3003C287B /* Info.plist */,
EE638CCA1B89DBAC0006DD1A /* main.m */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
EE0D80231B89C853003C287B /* LoadView Example */ = {
isa = PBXGroup;
children = (
EE638CC11B89DB6E0006DD1A /* LoadViewExampleViewController.h */,
EE638CC21B89DB6E0006DD1A /* LoadViewExampleViewController.m */,
);
name = "LoadView Example";
sourceTree = "<group>";
};
EE0D80241B89C868003C287B /* Storyboard Example */ = {
isa = PBXGroup;
children = (
EE638CCC1B89DBD80006DD1A /* StoryboardExampleViewController.h */,
EE638CCD1B89DBD80006DD1A /* StoryboardExampleViewController.m */,
EE638CC71B89DB940006DD1A /* CalendarConfigViewController.h */,
EE638CC81B89DB940006DD1A /* CalendarConfigViewController.m */,
);
name = "Storyboard Example";
sourceTree = "<group>";
};
EE52AE151B91E65D00016662 /* FSCalendarScope Example */ = {
isa = PBXGroup;
children = (
EE52AE161B91E68A00016662 /* FSCalendarScopeExampleViewController.h */,
EE52AE171B91E68A00016662 /* FSCalendarScopeExampleViewController.m */,
);
name = "FSCalendarScope Example";
sourceTree = "<group>";
};
EE638CF21B8A1F550006DD1A /* FSCalendarTests */ = {
isa = PBXGroup;
children = (
EE638CF51B8A1F550006DD1A /* FSCalendarTests.m */,
301F93441D8802D90028BEC8 /* FSCalendarExtensionTest.m */,
EE638CF31B8A1F550006DD1A /* Supporting Files */,
);
path = FSCalendarTests;
sourceTree = "<group>";
};
EE638CF31B8A1F550006DD1A /* Supporting Files */ = {
isa = PBXGroup;
children = (
EE638CF41B8A1F550006DD1A /* Info.plist */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
EECA10F51BA9BF9B00945B83 /* Fullscreen Example */ = {
isa = PBXGroup;
children = (
EECA10F61BA9C0E400945B83 /* FullScreenExampleViewController.h */,
EECA10F71BA9C0E400945B83 /* FullScreenExampleViewController.m */,
);
name = "Fullscreen Example";
sourceTree = "<group>";
};
F9384A631E3ACEFB001601E0 /* FSCalendarExampleUITests */ = {
isa = PBXGroup;
children = (
F9384A641E3ACEFB001601E0 /* FSCalendarExampleUITests.m */,
F9384A661E3ACEFB001601E0 /* Info.plist */,
);
path = FSCalendarExampleUITests;
sourceTree = "<group>";
};
F94A976E1EA6036E004F8F4D /* Range Picker */ = {
isa = PBXGroup;
children = (
F988B1C61EA6046700609E59 /* RangePickerViewController.h */,
F988B1C71EA6046700609E59 /* RangePickerViewController.m */,
F988B1C91EA6054400609E59 /* RangePickerCell.h */,
F988B1CA1EA6054400609E59 /* RangePickerCell.m */,
);
name = "Range Picker";
sourceTree = "<group>";
};
F971A0C11F265166000369FD /* LunarFormatter */ = {
isa = PBXGroup;
children = (
F971A0C21F2651A7000369FD /* LunarFormatter.h */,
F971A0C31F2651A7000369FD /* LunarFormatter.m */,
);
name = LunarFormatter;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
EE638CDF1B8A1F550006DD1A /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
50F2ADE8216D954A00CC481F /* FSCalendarSeparatorDecorationView.h in Headers */,
30B0BAFC1B8D9AD4004B9476 /* FSCalendar.h in Headers */,
30B0BB011B8D9B6C004B9476 /* FSCalendarAppearance.h in Headers */,
3092253A1B905C4300123031 /* FSCalendarConstants.h in Headers */,
30B0BB021B8D9B6C004B9476 /* FSCalendarCell.h in Headers */,
30B0BB041B8D9B6D004B9476 /* FSCalendarHeaderView.h in Headers */,
30A495541DCAD9E6000B2F31 /* FSCalendarWeekdayView.h in Headers */,
EEC9C0391BDC9E7000383A07 /* FSCalendarCollectionView.h in Headers */,
30FCB3961BAAD112002B87AD /* FSCalendarStickyHeader.h in Headers */,
3095398F1C38D66C00BD37AA /* FSCalendarCollectionViewLayout.h in Headers */,
3055B1C21DA9323A002AFA13 /* FSCalendarExtensions.h in Headers */,
301F79CB1DFD39E700D8631E /* FSCalendarDelegationProxy.h in Headers */,
30F4C90F1E07C12B00D2EC4D /* FSCalendarDelegationFactory.h in Headers */,
30DBE3C41DC641AD005A22B7 /* FSCalendarCalculator.h in Headers */,
30CEF9001C950C1F008EAFB1 /* FSCalendarTransitionCoordinator.h in Headers */,
30B0BB031B8D9B6D004B9476 /* FSCalendarDynamicHeader.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHe
gitextract_xbca8hux/ ├── .github/ │ └── ISSUE_TEMPLATE.md ├── .gitignore ├── .travis.yml ├── CHANGELOG.md ├── Example-Objc/ │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Base.lproj/ │ │ └── Main.storyboard │ ├── ButtonsViewController.h │ ├── ButtonsViewController.m │ ├── CalendarConfigViewController.h │ ├── CalendarConfigViewController.m │ ├── DIYCalendarCell.h │ ├── DIYCalendarCell.m │ ├── DIYExampleViewController.h │ ├── DIYExampleViewController.m │ ├── DelegateAppearanceViewController.h │ ├── DelegateAppearanceViewController.m │ ├── FSCalendar.xcodeproj/ │ │ ├── project.pbxproj │ │ ├── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcshareddata/ │ │ ├── xcbaselines/ │ │ │ └── 30671DC61D6D574C00BCFC4E.xcbaseline/ │ │ │ ├── 3003B86B-B981-4064-9C85-E799A3B13220.plist │ │ │ ├── 621090AF-4CF3-4245-99AD-46AD956ACA82.plist │ │ │ ├── A165CA85-3EFC-487B-954E-5AD1DC2EB21D.plist │ │ │ └── Info.plist │ │ └── xcschemes/ │ │ ├── FSCalendar.xcscheme │ │ └── FSCalendarExample.xcscheme │ ├── FSCalendarExampleUITests/ │ │ ├── FSCalendarExampleUITests.m │ │ └── Info.plist │ ├── FSCalendarScopeExampleViewController.h │ ├── FSCalendarScopeExampleViewController.m │ ├── FSCalendarTests/ │ │ ├── FSCalendarExtensionTest.m │ │ ├── FSCalendarTests.m │ │ └── Info.plist │ ├── FSTableViewController.h │ ├── FSTableViewController.m │ ├── FullScreenExampleViewController.h │ ├── FullScreenExampleViewController.m │ ├── HidePlaceholderViewController.h │ ├── HidePlaceholderViewController.m │ ├── Images.xcassets/ │ │ ├── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── LaunchImage.launchimage/ │ │ │ └── Contents.json │ │ ├── circle.imageset/ │ │ │ └── Contents.json │ │ ├── fire.imageset/ │ │ │ └── Contents.json │ │ ├── icon_cat.imageset/ │ │ │ └── Contents.json │ │ ├── icon_footprint.imageset/ │ │ │ └── Contents.json │ │ ├── icon_next.imageset/ │ │ │ └── Contents.json │ │ ├── icon_prev.imageset/ │ │ │ └── Contents.json │ │ └── icon_setting.imageset/ │ │ └── Contents.json │ ├── Info.plist │ ├── LaunchScreen.xib │ ├── LoadViewExampleViewController.h │ ├── LoadViewExampleViewController.m │ ├── LunarFormatter.h │ ├── LunarFormatter.m │ ├── RangePickerCell.h │ ├── RangePickerCell.m │ ├── RangePickerViewController.h │ ├── RangePickerViewController.m │ ├── StoryboardExampleViewController.h │ ├── StoryboardExampleViewController.m │ └── main.m ├── Example-Swift/ │ ├── FSCalendarSwiftExample/ │ │ ├── AppDelegate.swift │ │ ├── Base.lproj/ │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── CalendarConfigViewController.swift │ │ ├── DIYCalendarCell.swift │ │ ├── DIYExampleViewController.swift │ │ ├── DelegateAppearanceViewController.swift │ │ ├── FSCalendarScopeViewController.swift │ │ ├── Images.xcassets/ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.launchimage/ │ │ │ │ └── Contents.json │ │ │ ├── circle.imageset/ │ │ │ │ └── Contents.json │ │ │ ├── icon_cat.imageset/ │ │ │ │ └── Contents.json │ │ │ └── icon_setting.imageset/ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── InterfaceBuilderViewController.swift │ │ ├── LoadViewExampleViewController.swift │ │ ├── LunarFormatter.swift │ │ ├── Objc-Bridge-Header.h │ │ └── TableViewController.swift │ ├── FSCalendarSwiftExample.xcodeproj/ │ │ ├── project.pbxproj │ │ └── project.xcworkspace/ │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata/ │ │ └── IDEWorkspaceChecks.plist │ └── FSCalendarSwiftExampleUITests/ │ ├── FSCalendarSwiftExampleUITests.swift │ ├── Info.plist │ └── Objc-Bridge-Header.h ├── Example-TodayExtension/ │ ├── Example-TodayExtension.xcodeproj/ │ │ ├── project.pbxproj │ │ └── project.xcworkspace/ │ │ └── contents.xcworkspacedata │ ├── TodayExtension/ │ │ ├── Base.lproj/ │ │ │ └── MainInterface.storyboard │ │ ├── Image.xcassets/ │ │ │ ├── Contents.json │ │ │ ├── circle_next.imageset/ │ │ │ │ └── Contents.json │ │ │ └── circle_prev.imageset/ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── TodayViewController.h │ │ └── TodayViewController.m │ └── TodayExtensionExample/ │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets/ │ │ ├── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj/ │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── ViewController.h │ ├── ViewController.m │ └── main.m ├── Example-TodayExtension2/ │ └── Example-TodayExtension.xcodeproj/ │ └── project.pbxproj ├── FSCalendar/ │ ├── FSCalendar.h │ ├── FSCalendar.m │ ├── FSCalendarAppearance.h │ ├── FSCalendarAppearance.m │ ├── FSCalendarCalculator.h │ ├── FSCalendarCalculator.m │ ├── FSCalendarCell.h │ ├── FSCalendarCell.m │ ├── FSCalendarCollectionView.h │ ├── FSCalendarCollectionView.m │ ├── FSCalendarCollectionViewLayout.h │ ├── FSCalendarCollectionViewLayout.m │ ├── FSCalendarConstants.h │ ├── FSCalendarConstants.m │ ├── FSCalendarDelegationFactory.h │ ├── FSCalendarDelegationFactory.m │ ├── FSCalendarDelegationProxy.h │ ├── FSCalendarDelegationProxy.m │ ├── FSCalendarDynamicHeader.h │ ├── FSCalendarExtensions.h │ ├── FSCalendarExtensions.m │ ├── FSCalendarHeaderView.h │ ├── FSCalendarHeaderView.m │ ├── FSCalendarSeparatorDecorationView.h │ ├── FSCalendarSeparatorDecorationView.m │ ├── FSCalendarStickyHeader.h │ ├── FSCalendarStickyHeader.m │ ├── FSCalendarTransitionCoordinator.h │ ├── FSCalendarTransitionCoordinator.m │ ├── FSCalendarWeekdayView.h │ ├── FSCalendarWeekdayView.m │ ├── Info.plist │ └── include/ │ └── module.modulemap ├── FSCalendar.podspec ├── FSCalendarExamples.xcworkspace/ │ ├── contents.xcworkspacedata │ └── xcshareddata/ │ └── IDEWorkspaceChecks.plist ├── LICENSE ├── MOREUSAGE.md ├── Package.swift └── README.md
SYMBOL INDEX (7 symbols across 5 files)
FILE: Example-Objc/DIYCalendarCell.h
type SelectionTypeNone (line 11) | typedef NS_ENUM(NSUInteger, SelectionType) {
FILE: FSCalendar/FSCalendar.h
type FSCalendarScopeMonth (line 31) | typedef NS_ENUM(NSUInteger, FSCalendarScope) {
type FSCalendarScrollDirectionVertical (line 36) | typedef NS_ENUM(NSUInteger, FSCalendarScrollDirection) {
FILE: FSCalendar/FSCalendarCalculator.h
type FSCalendarCoordinate (line 12) | struct FSCalendarCoordinate {
type FSCalendarCoordinate (line 16) | typedef struct FSCalendarCoordinate FSCalendarCoordinate;
FILE: FSCalendar/FSCalendarConstants.h
function FSCalendarSliceCake (line 75) | static inline void FSCalendarSliceCake(CGFloat cake, NSInteger count, CG...
FILE: FSCalendar/FSCalendarTransitionCoordinator.h
type FSCalendarTransitionStateIdle (line 13) | typedef NS_ENUM(NSUInteger, FSCalendarTransitionState) {
Condensed preview — 148 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (872K chars).
[
{
"path": ".github/ISSUE_TEMPLATE.md",
"chars": 681,
"preview": "\n## The following informations are requested in a bug report\n* A brief bug description.\n* Stack trace.\n* Integration met"
},
{
"path": ".gitignore",
"chars": 351,
"preview": "# OS X\n.DS_Store\n\n# Xcode\nbuild/\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.pers"
},
{
"path": ".travis.yml",
"chars": 364,
"preview": "language: objective-c\nosx_image: xcode9\n\nscript:\n\n - xcodebuild -project Example-Objc/FSCalendar.xcodeproj -sdk iphon"
},
{
"path": "CHANGELOG.md",
"chars": 37530,
"preview": "# Change Log\n\n## [2.7.4](https://github.com/WenchaoD/FSCalendar/tree/2.7.4) (2017-03-15)\n[Full Changelog](https://github"
},
{
"path": "Example-Objc/AppDelegate.h",
"chars": 273,
"preview": "//\n// FSAppDelegate.h\n// FSCalendar\n//\n// Created by CocoaPods on 02/13/2015.\n// Copyright (c) 2014 =. All rights re"
},
{
"path": "Example-Objc/AppDelegate.m",
"chars": 1996,
"preview": "//\n// FSAppDelegate.m\n// FSCalendar\n//\n// Created by CocoaPods on 02/13/2015.\n// Copyright (c) 2014 =. All rights re"
},
{
"path": "Example-Objc/Base.lproj/Main.storyboard",
"chars": 86983,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
},
{
"path": "Example-Objc/ButtonsViewController.h",
"chars": 232,
"preview": "//\n// ButtonsViewController.h\n// FSCalendar\n//\n// Created by dingwenchao on 4/15/16.\n// Copyright © 2016 Wenchao Din"
},
{
"path": "Example-Objc/ButtonsViewController.m",
"chars": 3261,
"preview": "//\n// ButtonsViewController.m\n// FSCalendar\n//\n// Created by dingwenchao on 4/15/16.\n// Copyright © 2016 Wenchao Din"
},
{
"path": "Example-Objc/CalendarConfigViewController.h",
"chars": 621,
"preview": "//\n// CalendarConfigViewController.h\n// FSCalendar\n//\n// Created by Wenchao Ding on 2/15/15.\n// Copyright (c) 2015 W"
},
{
"path": "Example-Objc/CalendarConfigViewController.m",
"chars": 2461,
"preview": "//\n// CalendarConfigViewController.m\n// FSCalendar\n//\n// Created by Wenchao Ding on 2/15/15.\n// Copyright (c) 2015 W"
},
{
"path": "Example-Objc/DIYCalendarCell.h",
"chars": 589,
"preview": "//\n// DIYCalendarCell.h\n// FSCalendar\n//\n// Created by dingwenchao on 02/11/2016.\n// Copyright © 2016 Wenchao Ding. "
},
{
"path": "Example-Objc/DIYCalendarCell.m",
"chars": 3077,
"preview": "//\n// DIYCalendarCell.m\n// FSCalendar\n//\n// Created by dingwenchao on 02/11/2016.\n// Copyright © 2016 Wenchao Ding. "
},
{
"path": "Example-Objc/DIYExampleViewController.h",
"chars": 236,
"preview": "//\n// DIYExampleViewController.h\n// FSCalendar\n//\n// Created by dingwenchao on 5/8/16.\n// Copyright © 2016 Wenchao D"
},
{
"path": "Example-Objc/DIYExampleViewController.m",
"chars": 9113,
"preview": "//\n// DIYExampleViewController.m\n// FSCalendar\n//\n// Created by dingwenchao on 5/8/16.\n// Copyright © 2016 Wenchao D"
},
{
"path": "Example-Objc/DelegateAppearanceViewController.h",
"chars": 265,
"preview": "//\n// RollViewController.h\n// FSCalendar\n//\n// Created by dingwenchao on 10/16/15.\n// Copyright (c) 2015 Wenchao Din"
},
{
"path": "Example-Objc/DelegateAppearanceViewController.m",
"chars": 9601,
"preview": "//\n// RollViewController.m\n// FSCalendar\n//\n// Created by dingwenchao on 10/16/15.\n// Copyright (c) 2015 Wenchao Din"
},
{
"path": "Example-Objc/FSCalendar.xcodeproj/project.pbxproj",
"chars": 61549,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "Example-Objc/FSCalendar.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 155,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:FSCalendar.xcod"
},
{
"path": "Example-Objc/FSCalendar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Example-Objc/FSCalendar.xcodeproj/xcshareddata/xcbaselines/30671DC61D6D574C00BCFC4E.xcbaseline/3003B86B-B981-4064-9C85-E799A3B13220.plist",
"chars": 856,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Example-Objc/FSCalendar.xcodeproj/xcshareddata/xcbaselines/30671DC61D6D574C00BCFC4E.xcbaseline/621090AF-4CF3-4245-99AD-46AD956ACA82.plist",
"chars": 562,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Example-Objc/FSCalendar.xcodeproj/xcshareddata/xcbaselines/30671DC61D6D574C00BCFC4E.xcbaseline/A165CA85-3EFC-487B-954E-5AD1DC2EB21D.plist",
"chars": 1130,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Example-Objc/FSCalendar.xcodeproj/xcshareddata/xcbaselines/30671DC61D6D574C00BCFC4E.xcbaseline/Info.plist",
"chars": 2288,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Example-Objc/FSCalendar.xcodeproj/xcshareddata/xcschemes/FSCalendar.xcscheme",
"chars": 2877,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"0930\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Example-Objc/FSCalendar.xcodeproj/xcshareddata/xcschemes/FSCalendarExample.xcscheme",
"chars": 3805,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n LastUpgradeVersion = \"1140\"\n version = \"1.3\">\n <BuildAction\n "
},
{
"path": "Example-Objc/FSCalendarExampleUITests/FSCalendarExampleUITests.m",
"chars": 11016,
"preview": "//\n// FSCalendarExampleUITests.m\n// FSCalendarExampleUITests\n//\n// Created by Wenchao Ding on 27/01/2017.\n// Copyrig"
},
{
"path": "Example-Objc/FSCalendarExampleUITests/Info.plist",
"chars": 680,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Example-Objc/FSCalendarScopeExampleViewController.h",
"chars": 288,
"preview": "//\n// FSCalendarScopeExampleViewController.h\n// FSCalendar\n//\n// Created by Wenchao Ding on 8/29/15.\n// Copyright (c"
},
{
"path": "Example-Objc/FSCalendarScopeExampleViewController.m",
"chars": 6471,
"preview": "//\n// FSCalendarScopeExampleViewController.m\n// FSCalendar\n//\n// Created by Wenchao Ding on 8/29/15.\n// Copyright (c"
},
{
"path": "Example-Objc/FSCalendarTests/FSCalendarExtensionTest.m",
"chars": 1717,
"preview": "//\n// FSExtensionTest.m\n// FSCalendar\n//\n// Created by dingwenchao on 9/13/16.\n// Copyright © 2016 Wenchao Ding. All"
},
{
"path": "Example-Objc/FSCalendarTests/FSCalendarTests.m",
"chars": 2282,
"preview": "//\n// FSCalendarTests.m\n// FSCalendarTests\n//\n// Created by dingwenchao on 8/24/16.\n// Copyright © 2016 Wenchao Ding"
},
{
"path": "Example-Objc/FSCalendarTests/Info.plist",
"chars": 733,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Example-Objc/FSTableViewController.h",
"chars": 284,
"preview": "//\n// FSTableViewController.h\n// FSCalendar\n//\n// Created by DingWenchao on 6/25/15.\n// Copyright (c) 2015 =. All ri"
},
{
"path": "Example-Objc/FSTableViewController.m",
"chars": 2018,
"preview": "//\n// FSTableViewController.m\n// FSCalendar\n//\n// Created by DingWenchao on 6/25/15.\n// Copyright (c) 2015 =. All ri"
},
{
"path": "Example-Objc/FullScreenExampleViewController.h",
"chars": 241,
"preview": "//\n// FullScreenExample.h\n// FSCalendar\n//\n// Created by Wenchao Ding on 9/16/15.\n// Copyright (c) 2015 Wenchao Ding"
},
{
"path": "Example-Objc/FullScreenExampleViewController.m",
"chars": 9487,
"preview": "//\n// FullScreenExample.m\n// FSCalendar\n//\n// Created by Wenchao Ding on 9/16/15.\n// Copyright (c) 2015 Wenchao Ding"
},
{
"path": "Example-Objc/HidePlaceholderViewController.h",
"chars": 247,
"preview": "//\n// HidePlaceholderViewController.h\n// FSCalendar\n//\n// Created by dingwenchao on 3/9/16.\n// Copyright © 2016 Wenc"
},
{
"path": "Example-Objc/HidePlaceholderViewController.m",
"chars": 5817,
"preview": "//\n// HidePlaceholderViewController.m\n// FSCalendar\n//\n// Created by dingwenchao on 3/9/16.\n// Copyright © 2016 Wenc"
},
{
"path": "Example-Objc/Images.xcassets/AppIcon.appiconset/Contents.json",
"chars": 2726,
"preview": "{\n \"images\" : [\n {\n \"size\" : \"20x20\",\n \"idiom\" : \"iphone\",\n \"filename\" : \"Icon-App-20x20@2x.png\",\n "
},
{
"path": "Example-Objc/Images.xcassets/Contents.json",
"chars": 62,
"preview": "{\n \"info\" : {\n \"version\" : 1,\n \"author\" : \"xcode\"\n }\n}"
},
{
"path": "Example-Objc/Images.xcassets/LaunchImage.launchimage/Contents.json",
"chars": 1821,
"preview": "{\n \"images\" : [\n {\n \"extent\" : \"full-screen\",\n \"idiom\" : \"iphone\",\n \"subtype\" : \"736h\",\n \"filena"
},
{
"path": "Example-Objc/Images.xcassets/circle.imageset/Contents.json",
"chars": 306,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"idiom\" : \"universal\",\n "
},
{
"path": "Example-Objc/Images.xcassets/fire.imageset/Contents.json",
"chars": 270,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"idiom\" : \"universal\",\n "
},
{
"path": "Example-Objc/Images.xcassets/icon_cat.imageset/Contents.json",
"chars": 308,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"idiom\" : \"universal\",\n "
},
{
"path": "Example-Objc/Images.xcassets/icon_footprint.imageset/Contents.json",
"chars": 314,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"idiom\" : \"universal\",\n "
},
{
"path": "Example-Objc/Images.xcassets/icon_next.imageset/Contents.json",
"chars": 348,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"idiom\" : \"universal\",\n "
},
{
"path": "Example-Objc/Images.xcassets/icon_prev.imageset/Contents.json",
"chars": 348,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"idiom\" : \"universal\",\n "
},
{
"path": "Example-Objc/Images.xcassets/icon_setting.imageset/Contents.json",
"chars": 312,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"idiom\" : \"universal\",\n "
},
{
"path": "Example-Objc/Info.plist",
"chars": 1373,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Example-Objc/LaunchScreen.xib",
"chars": 3942,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
},
{
"path": "Example-Objc/LoadViewExampleViewController.h",
"chars": 250,
"preview": "//\n// LoadViewExampleViewController.h\n// FSCalendar\n//\n// Created by DingWenchao on 6/25/15.\n// Copyright (c) 2017 W"
},
{
"path": "Example-Objc/LoadViewExampleViewController.m",
"chars": 3963,
"preview": "//\n// LoadViewExampleViewController.m\n// FSCalendar\n//\n// Created by DingWenchao on 6/25/15.\n// Copyright (c) 2016 W"
},
{
"path": "Example-Objc/LunarFormatter.h",
"chars": 315,
"preview": "//\n// LunarFormatter.h\n// FSCalendar\n//\n// Created by Wenchao Ding on 25/07/2017.\n// Copyright © 2017 wenchaoios. Al"
},
{
"path": "Example-Objc/LunarFormatter.m",
"chars": 1789,
"preview": "//\n// LunarFormatter.m\n// FSCalendar\n//\n// Created by Wenchao Ding on 25/07/2017.\n// Copyright © 2017 wenchaoios. Al"
},
{
"path": "Example-Objc/RangePickerCell.h",
"chars": 392,
"preview": "//\n// RangePickerCell.h\n// FSCalendar\n//\n// Created by dingwenchao on 02/11/2016.\n// Copyright © 2016 Wenchao Ding. "
},
{
"path": "Example-Objc/RangePickerCell.m",
"chars": 1530,
"preview": "//\n// RangePickerCell.m\n// FSCalendar\n//\n// Created by dingwenchao on 02/11/2016.\n// Copyright © 2016 Wenchao Ding. "
},
{
"path": "Example-Objc/RangePickerViewController.h",
"chars": 238,
"preview": "//\n// RangePickerViewController.h\n// FSCalendar\n//\n// Created by dingwenchao on 5/8/16.\n// Copyright © 2016 Wenchao "
},
{
"path": "Example-Objc/RangePickerViewController.m",
"chars": 6783,
"preview": "//\n// RangePickerViewController.m\n// FSCalendar\n//\n// Created by dingwenchao on 5/8/16.\n// Copyright © 2016 Wenchao "
},
{
"path": "Example-Objc/StoryboardExampleViewController.h",
"chars": 277,
"preview": "//\n// FSViewController.h\n// Chinese-Lunar-Calendar\n//\n// Created by Wenchao Ding on 01/29/2015.\n// Copyright (c) 201"
},
{
"path": "Example-Objc/StoryboardExampleViewController.m",
"chars": 10027,
"preview": "//\n// StoryboardExampleViewController.m\n// Chinese-Lunar-Calendar\n//\n// Created by Wenchao Ding on 01/29/2015.\n// Co"
},
{
"path": "Example-Objc/main.m",
"chars": 341,
"preview": "//\n// main.m\n// FSCalendar\n//\n// Created by Wenchao Ding on 8/23/15.\n// Copyright (c) 2015 Wenchao Ding. All rights "
},
{
"path": "Example-Swift/FSCalendarSwiftExample/AppDelegate.swift",
"chars": 2181,
"preview": "//\n// AppDelegate.swift\n// FSCalendarSwiftExample\n//\n// Created by Wenchao Ding on 9/3/15.\n// Copyright (c) 2015 wen"
},
{
"path": "Example-Swift/FSCalendarSwiftExample/Base.lproj/LaunchScreen.xib",
"chars": 3942,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVe"
},
{
"path": "Example-Swift/FSCalendarSwiftExample/Base.lproj/Main.storyboard",
"chars": 65163,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
},
{
"path": "Example-Swift/FSCalendarSwiftExample/CalendarConfigViewController.swift",
"chars": 2059,
"preview": "//\n// CalendarConfigViewController.swift\n// FSCalendarSwiftExample\n//\n// Created by Wenchao Ding on 28/01/2017.\n// C"
},
{
"path": "Example-Swift/FSCalendarSwiftExample/DIYCalendarCell.swift",
"chars": 3192,
"preview": "//\n// DIYCalendarCell.swift\n// FSCalendarSwiftExample\n//\n// Created by dingwenchao on 06/11/2016.\n// Copyright © 201"
},
{
"path": "Example-Swift/FSCalendarSwiftExample/DIYExampleViewController.swift",
"chars": 7893,
"preview": "//\n// DIYViewController.swift\n// FSCalendarSwiftExample\n//\n// Created by dingwenchao on 06/11/2016.\n// Copyright © 2"
},
{
"path": "Example-Swift/FSCalendarSwiftExample/DelegateAppearanceViewController.swift",
"chars": 6099,
"preview": "//\n// DelegateAppearanceViewController.swift\n// FSCalendarSwiftExample\n//\n// Created by dingwenchao on 30/12/2016.\n//"
},
{
"path": "Example-Swift/FSCalendarSwiftExample/FSCalendarScopeViewController.swift",
"chars": 4690,
"preview": "//\n// FSCalendarScopeViewController.swift\n// FSCalendarSwiftExample\n//\n// Created by dingwenchao on 30/12/2016.\n// C"
},
{
"path": "Example-Swift/FSCalendarSwiftExample/Images.xcassets/AppIcon.appiconset/Contents.json",
"chars": 2726,
"preview": "{\n \"images\" : [\n {\n \"size\" : \"20x20\",\n \"idiom\" : \"iphone\",\n \"filename\" : \"Icon-App-20x20@2x.png\",\n "
},
{
"path": "Example-Swift/FSCalendarSwiftExample/Images.xcassets/Contents.json",
"chars": 62,
"preview": "{\n \"info\" : {\n \"version\" : 1,\n \"author\" : \"xcode\"\n }\n}"
},
{
"path": "Example-Swift/FSCalendarSwiftExample/Images.xcassets/LaunchImage.launchimage/Contents.json",
"chars": 1821,
"preview": "{\n \"images\" : [\n {\n \"extent\" : \"full-screen\",\n \"idiom\" : \"iphone\",\n \"subtype\" : \"736h\",\n \"filena"
},
{
"path": "Example-Swift/FSCalendarSwiftExample/Images.xcassets/circle.imageset/Contents.json",
"chars": 306,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"idiom\" : \"universal\",\n "
},
{
"path": "Example-Swift/FSCalendarSwiftExample/Images.xcassets/icon_cat.imageset/Contents.json",
"chars": 308,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"idiom\" : \"universal\",\n "
},
{
"path": "Example-Swift/FSCalendarSwiftExample/Images.xcassets/icon_setting.imageset/Contents.json",
"chars": 312,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"idiom\" : \"universal\",\n "
},
{
"path": "Example-Swift/FSCalendarSwiftExample/Info.plist",
"chars": 1308,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Example-Swift/FSCalendarSwiftExample/InterfaceBuilderViewController.swift",
"chars": 6774,
"preview": "//\n// ViewController.swift\n// FSCalendarSwiftExample\n//\n// Created by Wenchao Ding on 9/3/15.\n// Copyright (c) 2015 "
},
{
"path": "Example-Swift/FSCalendarSwiftExample/LoadViewExampleViewController.swift",
"chars": 1331,
"preview": "//\n// LoadViewExampleViewController.swift\n// FSCalendarSwiftExample\n//\n// Created by dingwenchao on 10/17/16.\n// Cop"
},
{
"path": "Example-Swift/FSCalendarSwiftExample/LunarFormatter.swift",
"chars": 1395,
"preview": "//\n// LunarFormatter.swift\n// FSCalendarSwiftExample\n//\n// Created by Wenchao Ding on 25/07/2017.\n// Copyright © 201"
},
{
"path": "Example-Swift/FSCalendarSwiftExample/Objc-Bridge-Header.h",
"chars": 290,
"preview": "//\n// Objc-Bridge-Header.h\n// FSCalendarSwiftExample\n//\n// Created by Wenchao Ding on 9/3/15.\n// Copyright (c) 2015 "
},
{
"path": "Example-Swift/FSCalendarSwiftExample/TableViewController.swift",
"chars": 684,
"preview": "//\n// TableViewController.swift\n// FSCalendarSwiftExample\n//\n// Created by dingwenchao on 10/17/16.\n// Copyright © 2"
},
{
"path": "Example-Swift/FSCalendarSwiftExample.xcodeproj/project.pbxproj",
"chars": 35082,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "Example-Swift/FSCalendarSwiftExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 227,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:/Users/wenchaod"
},
{
"path": "Example-Swift/FSCalendarSwiftExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Example-Swift/FSCalendarSwiftExampleUITests/FSCalendarSwiftExampleUITests.swift",
"chars": 8811,
"preview": "//\n// FSCalendarSwiftExampleUITests.swift\n// FSCalendarSwiftExampleUITests\n//\n// Created by Wenchao Ding on 29/01/201"
},
{
"path": "Example-Swift/FSCalendarSwiftExampleUITests/Info.plist",
"chars": 680,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Example-Swift/FSCalendarSwiftExampleUITests/Objc-Bridge-Header.h",
"chars": 314,
"preview": "//\n// Objc-Bridge-Header.h\n// FSCalendarSwiftExampleUITests\n//\n// Created by Wenchao Ding on 29/01/2017.\n// Copyrigh"
},
{
"path": "Example-TodayExtension/Example-TodayExtension.xcodeproj/project.pbxproj",
"chars": 32299,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "Example-TodayExtension/Example-TodayExtension.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 244,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:/Users/dingwenc"
},
{
"path": "Example-TodayExtension/TodayExtension/Base.lproj/MainInterface.storyboard",
"chars": 9955,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3"
},
{
"path": "Example-TodayExtension/TodayExtension/Image.xcassets/Contents.json",
"chars": 62,
"preview": "{\n \"info\" : {\n \"version\" : 1,\n \"author\" : \"xcode\"\n }\n}"
},
{
"path": "Example-TodayExtension/TodayExtension/Image.xcassets/circle_next.imageset/Contents.json",
"chars": 308,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"idiom\" : \"universal\",\n "
},
{
"path": "Example-TodayExtension/TodayExtension/Image.xcassets/circle_prev.imageset/Contents.json",
"chars": 308,
"preview": "{\n \"images\" : [\n {\n \"idiom\" : \"universal\",\n \"scale\" : \"1x\"\n },\n {\n \"idiom\" : \"universal\",\n "
},
{
"path": "Example-TodayExtension/TodayExtension/Info.plist",
"chars": 993,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Example-TodayExtension/TodayExtension/TodayViewController.h",
"chars": 309,
"preview": "//\n// TodayViewController.h\n// Example-TodayExtension\n//\n// Created by dingwenchao on 9/6/16.\n// Copyright © 2016 di"
},
{
"path": "Example-TodayExtension/TodayExtension/TodayViewController.m",
"chars": 5082,
"preview": "//\n// TodayViewController.m\n// Example-TodayExtension\n//\n// Created by dingwenchao on 9/6/16.\n// Copyright © 2016 di"
},
{
"path": "Example-TodayExtension/TodayExtensionExample/AppDelegate.h",
"chars": 291,
"preview": "//\n// AppDelegate.h\n// Example-TodayExtension\n//\n// Created by dingwenchao on 9/6/16.\n// Copyright © 2016 dingwencha"
},
{
"path": "Example-TodayExtension/TodayExtensionExample/AppDelegate.m",
"chars": 2045,
"preview": "//\n// AppDelegate.m\n// Example-TodayExtension\n//\n// Created by dingwenchao on 9/6/16.\n// Copyright © 2016 dingwencha"
},
{
"path": "Example-TodayExtension/TodayExtensionExample/Assets.xcassets/AppIcon.appiconset/Contents.json",
"chars": 2631,
"preview": "{\n \"images\" : [\n {\n \"size\" : \"20x20\",\n \"idiom\" : \"iphone\",\n \"filename\" : \"Icon-App-20x20@2x.png\",\n "
},
{
"path": "Example-TodayExtension/TodayExtensionExample/Assets.xcassets/Contents.json",
"chars": 62,
"preview": "{\n \"info\" : {\n \"version\" : 1,\n \"author\" : \"xcode\"\n }\n}"
},
{
"path": "Example-TodayExtension/TodayExtensionExample/Base.lproj/LaunchScreen.storyboard",
"chars": 1664,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
},
{
"path": "Example-TodayExtension/TodayExtensionExample/Base.lproj/Main.storyboard",
"chars": 1706,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard"
},
{
"path": "Example-TodayExtension/TodayExtensionExample/Info.plist",
"chars": 1495,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "Example-TodayExtension/TodayExtensionExample/ViewController.h",
"chars": 229,
"preview": "//\n// ViewController.h\n// Example-TodayExtension\n//\n// Created by dingwenchao on 9/6/16.\n// Copyright © 2016 dingwen"
},
{
"path": "Example-TodayExtension/TodayExtensionExample/ViewController.m",
"chars": 508,
"preview": "//\n// ViewController.m\n// Example-TodayExtension\n//\n// Created by dingwenchao on 9/6/16.\n// Copyright © 2016 dingwen"
},
{
"path": "Example-TodayExtension/TodayExtensionExample/main.m",
"chars": 348,
"preview": "//\n// main.m\n// Example-TodayExtension\n//\n// Created by dingwenchao on 9/6/16.\n// Copyright © 2016 dingwenchao. All "
},
{
"path": "Example-TodayExtension2/Example-TodayExtension.xcodeproj/project.pbxproj",
"chars": 32930,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "FSCalendar/FSCalendar.h",
"chars": 19770,
"preview": "//\n// FSCalendar.h\n// FSCalendar\n//\n// Created by Wenchao Ding on 29/1/15.\n// Copyright © 2016 Wenchao Ding. All rig"
},
{
"path": "FSCalendar/FSCalendar.m",
"chars": 64086,
"preview": "//\n// FSCalendar.m\n// FSCalendar\n//\n// Created by Wenchao Ding on 29/1/15.\n// Copyright © 2016 Wenchao Ding. All rig"
},
{
"path": "FSCalendar/FSCalendarAppearance.h",
"chars": 5687,
"preview": "//\n// FSCalendarAppearance.h\n// Pods\n//\n// Created by DingWenchao on 6/29/15.\n// Copyright © 2016 Wenchao Ding. All "
},
{
"path": "FSCalendar/FSCalendarAppearance.m",
"chars": 14959,
"preview": "//\n// FSCalendarAppearance.m\n// Pods\n//\n// Created by DingWenchao on 6/29/15.\n// Copyright © 2016 Wenchao Ding. All "
},
{
"path": "FSCalendar/FSCalendarCalculator.h",
"chars": 1648,
"preview": "//\n// FSCalendarCalculator.h\n// FSCalendar\n//\n// Created by dingwenchao on 30/10/2016.\n// Copyright © 2016 Wenchao D"
},
{
"path": "FSCalendar/FSCalendarCalculator.m",
"chars": 11100,
"preview": "//\n// FSCalendarCalculator.m\n// FSCalendar\n//\n// Created by dingwenchao on 30/10/2016.\n// Copyright © 2016 Wenchao D"
},
{
"path": "FSCalendar/FSCalendarCell.h",
"chars": 3179,
"preview": "//\n// FSCalendarCell.h\n// Pods\n//\n// Created by Wenchao Ding on 12/3/15.\n//\n//\n\n#import <UIKit/UIKit.h>\n\n@class FSCal"
},
{
"path": "FSCalendar/FSCalendarCell.m",
"chars": 15824,
"preview": "//\n// FSCalendarCell.m\n// Pods\n//\n// Created by Wenchao Ding on 12/3/15.\n//\n//\n\n#import \"FSCalendarCell.h\"\n#import \"F"
},
{
"path": "FSCalendar/FSCalendarCollectionView.h",
"chars": 553,
"preview": "//\n// FSCalendarCollectionView.h\n// FSCalendar\n//\n// Created by Wenchao Ding on 10/25/15.\n// Copyright (c) 2015 Wenc"
},
{
"path": "FSCalendar/FSCalendarCollectionView.m",
"chars": 1777,
"preview": "//\n// FSCalendarCollectionView.m\n// FSCalendar\n//\n// Created by Wenchao Ding on 10/25/15.\n// Copyright (c) 2015 Wenc"
},
{
"path": "FSCalendar/FSCalendarCollectionViewLayout.h",
"chars": 458,
"preview": "//\n// FSCalendarAnimationLayout.h\n// FSCalendar\n//\n// Created by dingwenchao on 1/3/16.\n// Copyright © 2016 Wenchao "
},
{
"path": "FSCalendar/FSCalendarCollectionViewLayout.m",
"chars": 26158,
"preview": "//\n// FSCalendarAnimationLayout.m\n// FSCalendar\n//\n// Created by dingwenchao on 1/3/16.\n// Copyright © 2016 Wenchao "
},
{
"path": "FSCalendar/FSCalendarConstants.h",
"chars": 3257,
"preview": "//\n// FSCalendarConstants.h\n// FSCalendar\n//\n// Created by dingwenchao on 8/28/15.\n// Copyright © 2016 Wenchao Ding."
},
{
"path": "FSCalendar/FSCalendarConstants.m",
"chars": 1585,
"preview": "//\n// FSCalendarConstants.m\n// FSCalendar\n//\n// Created by dingwenchao on 8/28/15.\n// Copyright © 2016 Wenchao Ding."
},
{
"path": "FSCalendar/FSCalendarDelegationFactory.h",
"chars": 379,
"preview": "//\n// FSCalendarDelegationFactory.h\n// FSCalendar\n//\n// Created by dingwenchao on 19/12/2016.\n// Copyright © 2016 we"
},
{
"path": "FSCalendar/FSCalendarDelegationFactory.m",
"chars": 725,
"preview": "//\n// FSCalendarDelegationFactory.m\n// FSCalendar\n//\n// Created by dingwenchao on 19/12/2016.\n// Copyright © 2016 we"
},
{
"path": "FSCalendar/FSCalendarDelegationProxy.h",
"chars": 742,
"preview": "//\n// FSCalendarDelegationProxy.h\n// FSCalendar\n//\n// Created by dingwenchao on 11/12/2016.\n// Copyright © 2016 Wenc"
},
{
"path": "FSCalendar/FSCalendarDelegationProxy.m",
"chars": 2114,
"preview": "//\n// FSCalendarDelegationProxy.m\n// FSCalendar\n//\n// Created by dingwenchao on 11/12/2016.\n// Copyright © 2016 Wenc"
},
{
"path": "FSCalendar/FSCalendarDynamicHeader.h",
"chars": 2216,
"preview": "//\n// FSCalendarDynamicHeader.h\n// Pods\n//\n// Created by DingWenchao on 6/29/15.\n//\n// 动感头文件,仅供框架内部使用。\n// Private h"
},
{
"path": "FSCalendar/FSCalendarExtensions.h",
"chars": 2160,
"preview": "//\n// FSCalendarExtensions.h\n// FSCalendar\n//\n// Created by dingwenchao on 10/8/16.\n// Copyright © 2016 Wenchao Ding"
},
{
"path": "FSCalendar/FSCalendarExtensions.m",
"chars": 13650,
"preview": "//\n// FSCalendarExtensions.m\n// FSCalendar\n//\n// Created by dingwenchao on 10/8/16.\n// Copyright © 2016 Wenchao Ding"
},
{
"path": "FSCalendar/FSCalendarHeaderView.h",
"chars": 1148,
"preview": "//\n// FSCalendarHeader.h\n// Pods\n//\n// Created by Wenchao Ding on 29/1/15.\n//\n//\n\n#import <UIKit/UIKit.h>\n\n@class FSC"
},
{
"path": "FSCalendar/FSCalendarHeaderView.m",
"chars": 10657,
"preview": "//\n// FSCalendarHeader.m\n// Pods\n//\n// Created by Wenchao Ding on 29/1/15.\n//\n//\n\n#import \"FSCalendar.h\"\n#import \"FSC"
},
{
"path": "FSCalendar/FSCalendarSeparatorDecorationView.h",
"chars": 304,
"preview": "//\n// FSCalendarSeparatorDecorationView.h\n// FSCalendar\n//\n// Created by 丁文超 on 2018/10/10.\n// Copyright © 2018 wenc"
},
{
"path": "FSCalendar/FSCalendarSeparatorDecorationView.m",
"chars": 610,
"preview": "//\n// FSCalendarSeparatorDecorationView.m\n// FSCalendar\n//\n// Created by 丁文超 on 2018/10/10.\n// Copyright © 2018 wenc"
},
{
"path": "FSCalendar/FSCalendarStickyHeader.h",
"chars": 461,
"preview": "//\n// FSCalendarStaticHeader.h\n// FSCalendar\n//\n// Created by dingwenchao on 9/17/15.\n// Copyright (c) 2015 Wenchao "
},
{
"path": "FSCalendar/FSCalendarStickyHeader.m",
"chars": 3860,
"preview": "//\n// FSCalendarStaticHeader.m\n// FSCalendar\n//\n// Created by dingwenchao on 9/17/15.\n// Copyright (c) 2015 Wenchao "
},
{
"path": "FSCalendar/FSCalendarTransitionCoordinator.h",
"chars": 1582,
"preview": "//\n// FSCalendarTransitionCoordinator.h\n// FSCalendar\n//\n// Created by dingwenchao on 3/13/16.\n// Copyright © 2016 W"
},
{
"path": "FSCalendar/FSCalendarTransitionCoordinator.m",
"chars": 17560,
"preview": "//\n// FSCalendarTransitionCoordinator.m\n// FSCalendar\n//\n// Created by Wenchao Ding on 3/13/16.\n// Copyright © 2016 "
},
{
"path": "FSCalendar/FSCalendarWeekdayView.h",
"chars": 492,
"preview": "//\n// FSCalendarWeekdayView.h\n// FSCalendar\n//\n// Created by dingwenchao on 03/11/2016.\n// Copyright © 2016 dingwenc"
},
{
"path": "FSCalendar/FSCalendarWeekdayView.m",
"chars": 3564,
"preview": "//\n// FSCalendarWeekdayView.m\n// FSCalendar\n//\n// Created by dingwenchao on 03/11/2016.\n// Copyright © 2016 Wenchao "
},
{
"path": "FSCalendar/Info.plist",
"chars": 882,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "FSCalendar/include/module.modulemap",
"chars": 651,
"preview": "module FSCalendar {\n header \"FSCalendar.h\"\n header \"FSCalendarAppearance.h\"\n header \"FSCalendarCalculator.h\"\n "
},
{
"path": "FSCalendar.podspec",
"chars": 761,
"preview": "Pod::Spec.new do |s|\n\n s.name = \"FSCalendar\"\n s.version = \"2.8.4\"\n s.summary = \"A super"
},
{
"path": "FSCalendarExamples.xcworkspace/contents.xcworkspacedata",
"chars": 376,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"group:Example-Objc/F"
},
{
"path": "FSCalendarExamples.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist",
"chars": 238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "LICENSE",
"chars": 1100,
"preview": "Copyright (c) 2013-2016 FSCalendar (https://github.com/WenchaoD/FSCalendar)\n\nPermission is hereby granted, free of charg"
},
{
"path": "MOREUSAGE.md",
"chars": 7894,
"preview": "# More usage\n\n### If you want `FSCalendar` to scroll vertically\n\n* Objective - c\n\n```objective-c\n_calendar.scrollDirecti"
},
{
"path": "Package.swift",
"chars": 430,
"preview": "// swift-tools-version:5.3\nimport PackageDescription\n\nlet package = Package(\n name: \"FSCalendar\",\n platforms: [.iO"
},
{
"path": "README.md",
"chars": 11876,
"preview": "\n\n<br/><br/"
}
]
About this extraction
This page contains the full source code of the WenchaoD/FSCalendar GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 148 files (799.1 KB), approximately 213.0k tokens, and a symbol index with 7 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.