最近公司做的项目需要使用日期选择器,但是ios自带的感觉使用不是很方便,而且太普通了点。所以在网上搜了些日期选择器,发现一款叫做CKcalendar的开源项目挺不错的。项目下载地址
https://github.com/jaykz52/CKCalendar。运行工程,显示效果如下
但是在使用之后发现这个开源的项目根本就没有提供接口让我们将里面的英文改成中文使用。好吧,我自己汉化
,代码我来了
。
之后发现是用 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] > 0)) {
return nil;
}
NSMutableString *chMonth = [[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;
}
汉化后的运行效果如下:
最后附上整个工程的代码:
转载请说明出处http://ff20081528.iteye.com/blog/1678018
- 大小: 115.9 KB
- 大小: 122.8 KB
分享到:
相关推荐
iOS学习笔记之QuartzCore框架.pdf
iOS学习笔记之QuartzCore框架.rar
ios学习笔记中用到的美化按钮的背景图,iphone风格
ios学习笔记---simpleping 适合初学者练习使用。只是一个小的demo
是之前 IOS学习笔记上补充了一些 这边只是备份以后用到好下载 也欢迎你们来下载 学习 ^ ^
ios学习笔记 --sqllite3 创建 插入 查询 适合新手学习 加油
ios安全学习笔记, 供需要的人学习. 对iOS 感兴趣的同学可以看看
iOS学习笔记,技术道路走到黑.zip
这里面讲的都是些平常见的事情,平时看看,对自己开发能力有所提高
IOS 菜鸟笔记 之 项目 三 源码 blog地址:http://blog.csdn.net/tim_shadow/article/details/45717561
// [self changeNavigationState]; //改变状态栏 和 导航栏的状态 // [self changeImageScale];...// [self viewAnimation]; //View的动画 // [self imgToGrayimg]; //UIImage转为灰度图 // [self ...
我自学iOS开发时做的笔记,主要是OC语言的语法部分,没有包fundation框架,以我的亲身感受总结出iOS初学者容易犯的错误及疑问的地方,对本文如果意见欢迎与我交流,谢谢
懒人笔记 一个 iOS 开源笔记 App.zip,【已不再维护】超级记事本 for iOS
个人整理超精密的iOS笔记.pdf
这是一篇关于 iOS 学习的笔记文档,有需要的可以下载查看
IOS 菜鸟笔记 之 项目 一 ( 源码 ) 博客地址: http://blog.csdn.net/tim_shadow/article/details/45311447