ios學習筆記之CKCalendar漢化

最近公司做的項目需要使用日期選擇器,但是ios自帶的感覺使用不是很方便,而且太普通了點。所以在網上搜了些日期選擇器,發現一款叫做CKcalendar的開源項目挺不錯的。項目下載地址[url]https://github.com/jaykz52/CKCalendar[/url]。運行工程,顯示效果如下
[img]http://dl.iteye.com/upload/attachment/0073/7820/6a1c1e2c-6be4-3480-8898-b5e8d6e27121.png[/img]

但是在使用之後發現這個開源的項目根本就沒有提供接口讓我們將裏面的英文改成中文使用。好吧,我自己漢化 :cry: ,代碼我來了 :cry: 。

之後發現是用 dayOfWeekLabel 這個變量來顯示星期。故只要在爲其賦值之前將其漢化即可。

for (NSString *day in [self getDaysOfTheWeek]) {
UILabel *dayOfWeekLabel = [[UILabel alloc] initWithFrame:CGRectZero];
dayOfWeekLabel.text = [[self weekToChinese:day] uppercaseString];//攔擊過濾
dayOfWeekLabel.textAlignment = UITextAlignmentCenter;
dayOfWeekLabel.backgroundColor = [UIColor clearColor];
dayOfWeekLabel.shadowColor = [UIColor whiteColor];
dayOfWeekLabel.shadowOffset = CGSizeMake(0, 1);
[labels addObject:dayOfWeekLabel];
[self.calendarContainer addSubview:dayOfWeekLabel];
}


漢化方法:

#pragma - mark 自定義方法 用於漢化日曆的星期
- (NSString *) weekToChinese:(NSString *) enWeek {
if (!([enWeek length] > 0)) {
return nil;
}
NSString *upperWeek = [enWeek uppercaseString];
NSString *chWeek = nil;
if ([upperWeek isEqualToString:@"MON"]) {
chWeek = @"週一";
} else if([upperWeek isEqualToString:@"TUE"]) {
chWeek = @"週二";
} else if([upperWeek isEqualToString:@"WED"]) {
chWeek = @"週三";
} else if([upperWeek isEqualToString:@"THU"]) {
chWeek = @"週四";
} else if([upperWeek isEqualToString:@"FRI"]) {
chWeek = @"週五";
} else if([upperWeek isEqualToString:@"SAT"]) {
chWeek = @"週六";
} else if([upperWeek isEqualToString:@"SUN"]) {
chWeek = @"週日";
}
return chWeek;
}



月份的漢化同樣的道理,找到相應的標籤,然後對其過濾。代碼如下:

- (void)setMonthShowing:(NSDate *)aMonthShowing {
_monthShowing = [self firstDayOfMonthContainingDate:aMonthShowing];
self.titleLabel.text = [self monthToChinese:[self.dateFormatter stringFromDate:_monthShowing]];//過濾漢化
[self setNeedsLayout];
}


過濾方法:

#pragma - mark 自定義方法 用於漢化日曆的月份
- (NSString *) monthToChinese:(NSString *) enMonth {
if (!([enMonth length][NSMutableString alloc]init];
NSArray *arr = [enMonth componentsSeparatedByString:@" "];
NSString *arrMonth = [arr objectAtIndex:0];
NSString *arrYear = [arr objectAtIndex:1];
if ([arrMonth isEqualToString:@"January"]) {
[chMonth appendString:@"一月"];
} else if([arrMonth isEqualToString:@"February"]) {
[chMonth appendString:@"二月"];
} else if([arrMonth isEqualToString:@"March"]) {
[chMonth appendString:@"三月"];
} else if([arrMonth isEqualToString:@"April"]) {
[chMonth appendString:@"四月"];
} else if([arrMonth isEqualToString:@"May"]) {
[chMonth appendString:@"五月"];
} else if([arrMonth isEqualToString:@"June"]) {
[chMonth appendString:@"六月"];
} else if([arrMonth isEqualToString:@"July"]) {
[chMonth appendString:@"七月"];
} else if([arrMonth isEqualToString:@"August"]) {
[chMonth appendString:@"八月"];
} else if([arrMonth isEqualToString:@"September"]) {
[chMonth appendString:@"九月"];
} else if([arrMonth isEqualToString:@"October"]) {
[chMonth appendString:@"十月"];
} else if([arrMonth isEqualToString:@"November"]) {
[chMonth appendString:@"十一月"];
} else if([arrMonth isEqualToString:@"December"]) {
[chMonth appendString:@"十二月"];
}
[chMonth appendFormat:@" %@", arrYear];
return chMonth;
}


漢化後的運行效果如下:

[img]http://dl.iteye.com/upload/attachment/0073/7845/2997e8f5-1030-3f6e-9bc3-26b6f1451240.png[/img]


最後附上整個工程的代碼:


[b][color=red]轉載請說明出處[url]http://ff20081528.iteye.com/blog/1678018[/url][/color][/b]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章