Skip to content

Commit c4bb3ec

Browse files
committed
added support for displaying images, instead of day name
1 parent fff3108 commit c4bb3ec

4 files changed

+38
-11
lines changed

JTCalendar/JTCalendarDataCache.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@
1414
@property (weak, nonatomic) JTCalendar *calendarManager;
1515

1616
- (void)reloadData;
17-
- (BOOL)haveEvent:(NSDate *)date;
17+
- (NSInteger)haveEvent:(NSDate *)date;
1818

1919
@end

JTCalendar/JTCalendarDataCache.m

+5-6
Original file line numberDiff line numberDiff line change
@@ -37,25 +37,24 @@ - (void)reloadData
3737
[events removeAllObjects];
3838
}
3939

40-
- (BOOL)haveEvent:(NSDate *)date
40+
- (NSInteger)haveEvent:(NSDate *)date
4141
{
4242
if(!self.calendarManager.dataSource){
43-
return NO;
43+
return 0;
4444
}
4545

4646
if(!self.calendarManager.calendarAppearance.useCacheSystem){
4747
return [self.calendarManager.dataSource calendarHaveEvent:self.calendarManager date:date];
4848
}
4949

50-
BOOL haveEvent;
50+
NSInteger haveEvent;
5151
NSString *key = [dateFormatter stringFromDate:date];
52-
52+
5353
if(events[key] != nil){
54-
haveEvent = [events[key] boolValue];
54+
haveEvent = [events[key] integerValue];
5555
}
5656
else{
5757
haveEvent = [self.calendarManager.dataSource calendarHaveEvent:self.calendarManager date:date];
58-
events[key] = [NSNumber numberWithBool:haveEvent];
5958
}
6059

6160
return haveEvent;

JTCalendar/JTCalendarDayView.m

+30-3
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@
99

1010
#import "JTCircleView.h"
1111

12+
#import <SDWebImage/UIImageView+WebCache.h>
13+
1214
@interface JTCalendarDayView (){
1315
UIView *backgroundView;
1416
JTCircleView *circleView;
1517
UILabel *textLabel;
1618
JTCircleView *dotView;
19+
UIImageView *imageView;
1720

1821
BOOL isSelected;
1922

@@ -81,6 +84,11 @@ - (void)commonInit
8184
dotView.hidden = YES;
8285
}
8386

87+
{
88+
imageView = [UIImageView new];
89+
[self addSubview:imageView];
90+
}
91+
8492
{
8593
UITapGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTouch)];
8694

@@ -105,7 +113,9 @@ - (void)configureConstraintsForSubviews
105113
{
106114
textLabel.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
107115
backgroundView.frame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
108-
116+
117+
imageView.frame = CGRectMake(self.frame.size.width/2 - 15, (self.frame.size.height / 2) - 15, 30, 30);
118+
// imageView.backgroundColor = [UIColor redColor];
109119

110120
CGFloat sizeCircle = MIN(self.frame.size.width, self.frame.size.height);
111121
CGFloat sizeDot = sizeCircle;
@@ -260,10 +270,27 @@ - (void)setIsOtherMonth:(BOOL)isOtherMonth
260270

261271
- (void)reloadData
262272
{
263-
dotView.hidden = ![self.calendarManager.dataCache haveEvent:self.date];
264-
273+
NSInteger eventType = [self.calendarManager.dataCache haveEvent:self.date];
265274
BOOL selected = [self isSameDate:[self.calendarManager currentDateSelected]];
266275
[self setSelected:selected animated:NO];
276+
277+
if (eventType == 1) { // normal event
278+
imageView.hidden = YES;
279+
dotView.hidden = NO;
280+
// dotView.color = [UIColor greenColor];
281+
} else if (eventType == 2) { // match
282+
dotView.hidden = YES;
283+
textLabel.hidden = YES;
284+
imageView.hidden = NO;
285+
286+
NSString *matchImageUrl = [self.calendarManager.dataSource calendarGetMatchImage:self.calendarManager date:self.date];
287+
[imageView sd_setImageWithURL:[NSURL URLWithString:matchImageUrl]];
288+
} else {
289+
imageView.hidden = YES;
290+
textLabel.hidden = NO;
291+
dotView.hidden = YES;
292+
// dotView.color = [self.calendarManager.calendarAppearance dayDotColor];
293+
}
267294
}
268295

269296
- (BOOL)isToday

JTCalendar/JTCalendarViewDataSource.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@
1111

1212
@protocol JTCalendarDataSource <NSObject>
1313

14-
- (BOOL)calendarHaveEvent:(JTCalendar *)calendar date:(NSDate *)date;
14+
- (NSInteger)calendarHaveEvent:(JTCalendar *)calendar date:(NSDate *)date;
1515
- (void)calendarDidDateSelected:(JTCalendar *)calendar date:(NSDate *)date;
16+
- (NSString *)calendarGetMatchImage:(JTCalendar *)caledar date:(NSDate *)date;
1617

1718
@optional
1819

0 commit comments

Comments
 (0)