- Using cocoapods:
pod 'FSCalendar'
- Manually: Unzip downloaded zip file, drag all files under
FSCalendar-master/Pod/Classes
to your project, make surecopy items if needed
is checked.
#import "FSCalendar.h"
- Drag an UIView object to ViewController Scene, change the
Custom Class
toFSCalendar
- After adjust the position and frame, link the
dataSource
anddelegate
to the ViewController - Implement
FSCalendarDataSource
andFSCalendarDelegate
in ViewController.m
@property (weak , nonatomic) FSCalendar *calendar;
// In loadView or viewDidLoad
FSCalendar *calendar = [[FSCalendar alloc] initWithFrame:CGRectMake(0, 0, 320, 300)];
calendar.dataSource = self;
calendar.delegate = self;
[self.view addSubview:calendar];
self.calendar = calendar;
private weak var calendar: FSCalendar!
// In loadView or viewDidLoad
let calendar = FSCalendar(frame: CGRect(x: 0, y: 0, width: 320, height: 300))
calendar.dataSource = self
calendar.delegate = self
view.addSubview(calendar)
self.calendar = calendar
- Objective - c
_calendar.flow = FSCalendarFlowVertical;
- Swift
calendar.flow = .Vertical
- Objective - c
_calendar.flow = FSCalendarFlowHorizontal; // By default
- Swift
calendar.flow = .Horizontal
_calendar.firstWeekday = 2;
_calendar.appearance.headerDateFormat = @"MMM yy";
_calendar.appearance.weekdayTextColor = [UIColor redColor];
_calendar.appearance.headerTitleColor = [UIColor redColor];
_calendar.appearance.eventColor = [UIColor greenColor];
_calendar.appearance.selectionColor = [UIColor blueColor];
_calendar.appearance.todayColor = [UIColor orangeColor];
- Objective - c
_calendar.appearance.cellStyle = FSCalendarCellStyleRectangle;
- Swift
calendar.appearance.cellStyle = .Rectangle
// FSCalendarDataSource
- (NSString *)calendar:(FSCalendar *)calendar subtitleForDate:(NSDate *)date
{
return yourSubtitle;
}
// FSCalendarDataSource
- (BOOL)calendar:(FSCalendar *)calendar hasEventForDate:(NSDate *)date
{
return shouldShowEventDot;
}
// FSCalendarDataSource
- (UIImage *)calendar:(FSCalendar *)calendar imageForDate:(NSDate *)date
{
return anyImage;
}
// FSCalendarDataSource
- (NSDate *)minimumDateForCalendar:(FSCalendar *)calendar
{
return yourMinimumDate;
}
- (NSDate *)maximumDateForCalendar:(FSCalendar *)calendar
{
return yourMaximumDate;
}
// FSCalendarDelegate
- (void)calendar:(FSCalendar *)calendar didSelectDate:(NSDate *)date
{
// Do something
}
// FSCalendarDelegate
- (BOOL)calendar:(FSCalendar *)calendar shouldSelectDate:(NSDate *)date
{
if ([dateShouldNotBeSelected]) {
return NO;
}
return YES;
}
- (void)calendarCurrentMonthDidChange:(FSCalendar *)calendar
{
// Do something
}
ios 7.0
- The title size changed as we change frame size of FSCalendar: Automatically adjusting font size based on frame size is default behavior of FSCalendadr, to disable it:
_calendar.appearance.autoAdjustTitleSize = NO;
_calendar.appearance.titleFont = otherTitleFont;
_calendar.appearance.subtitleFont = otherSubtitleFont;
titleFont
and subtitleFont
would not take any effect if autoAdjustTitleSize
value is YES
- What if I don't need the
today
circle?
_calendar.appearance.todayColor = [UIColor clearColor];
_calendar.appearance.titleTodayColor = _calendar.appearance.titleDefaultColor;
_calendar.appearance.subtitleTodayColor = _calendar.appearance.subtitleDefaultColor;
_calendar.appearance.headerMinimumDissolvedAlpha = 0.0;
FSCalendar is available under the MIT license. See the LICENSE file for more info.
- If FSCalendar cannot meet your requirment, tell me in issues or send your pull requests
- If you like this control and use it in your app, submit your app's link address here.It would be a great support.
- email:
f33chobits@gmail.com
- skype:
wenchao.ding
- Paypal - f33chobits@gmail.com