`
ff20081528
  • 浏览: 85806 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ios学习笔记之CKCalendar汉化

    博客分类:
  • ios
阅读更多
    最近公司做的项目需要使用日期选择器,但是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
2
0
分享到:
评论
2 楼 ff20081528 2012-09-14  
witcheryne 写道
怎么没用国际化做?
NSLocalizationString

呵呵,我只是按照我们开发的需求给改了,有时间再想这事吧。
1 楼 witcheryne 2012-09-13  
怎么没用国际化做?
NSLocalizationString

相关推荐

    ios学习笔记---simpleping

    这个"ios学习笔记---simpleping"旨在帮助初学者理解如何在iOS应用中实现简单的网络探测功能。 SimplePing是一个基于Objective-C的类,它提供了对ICMP(Internet Control Message Protocol)协议的支持,这个协议被...

    IOS 学习笔记补充1

    在iOS学习的过程中,笔记是积累知识、巩固理解的重要工具。"IOS学习笔记补充1"是对前期学习内容的进一步丰富和完善,旨在帮助开发者更好地理解和掌握iOS开发的关键知识点。这份笔记不仅适用于初学者,对于有一定经验...

    ios安全学习笔记

    iOS安全学习笔记的知识点涵盖了多个方面,从学习资料的搜集到优秀博客文章和GitHub资源的整理,这为iOS安全研究者提供了一个丰富的资源库。以下是对上述内容中提及知识点的详细说明: 1. iOS安全学习资料汇总 首先...

    iOS学习笔记,技术道路走到黑.zip

    这份“iOS学习笔记,技术道路走到黑.zip”资源包含了一个名为"I-Love-iOS_master.zip"的子文件和一个“说明.txt”,它们可能是作者整理的iOS学习路径和代码示例。 首先,Swift语言是苹果公司在2014年WWDC上发布的...

    ios学习笔记中用到的美化按钮的背景图

    在iOS应用开发中,用户界面的设计与体验是至关重要的,其中按钮(UIButton)作为用户交互的核心元素之一,其美观程度和可操作性直接影响了用户的使用感受。本篇笔记主要探讨如何利用背景图来美化iOS应用中的按钮,以...

    ios学习笔记 --sqllite3

    这篇“iOS学习笔记 --SQLite3”旨在帮助新手掌握如何在iOS应用中使用SQLite3进行数据管理,包括创建数据库、插入数据、查询数据等基本操作。 首先,我们需要了解SQLite3的基本概念。SQLite3是一个嵌入式的关系型...

    iOS学习笔记

    【iOS学习笔记】 在iOS开发领域,理解和掌握基础UI组件是至关重要的,因为它们构成了用户与应用程序交互的主要界面。这份笔记将深入探讨一些关键的概念和技术,帮助初学者建立起扎实的iOS开发基础。 首先,我们来...

    IOS 学习笔记补充2

    // [self changeNavigationState]; //改变状态栏 和 导航栏的状态 // [self changeImageScale];...// [self viewAnimation]; //View的动画 // [self imgToGrayimg]; //UIImage转为灰度图 // [self ...

    ios学习笔记

    ### iOS学习笔记:UI控件详解 在iOS应用开发中,UI控件是构建用户界面的基础元素,它们决定了应用程序的外观和用户体验。...希望这份学习笔记能为iOS初学者提供有价值的指导,助力于他们的编程之旅。

    iOS 学习笔记

    综上所述,这份"iOS学习笔记"涵盖了Swift编程、UIKit框架、数据管理、网络编程、UI设计、通知服务以及测试与优化等多个重要领域,是全面学习iOS开发的宝贵资料。通过深入学习和实践,你可以逐步成为一名熟练的iOS...

    懒人笔记 一个 iOS 开源笔记 App.zip

    《懒人笔记:一个iOS开源笔记App的深度解析》 懒人笔记,作为一个曾经活跃的iOS开源项目,为开发者提供了一个便捷的、可定制化的笔记应用框架。虽然它已不再维护,但其代码库仍能为我们揭示iOS应用开发的一些关键...

    IOS 菜鸟笔记 之 项目 三 源码

    本笔记将聚焦于“项目三”,这是一个典型的iOS应用程序,包含下拉刷新和上拉加载功能。这两个特性是现代移动应用不可或缺的部分,它们提升了用户体验,使得用户可以无缝地获取新数据。 下拉刷新(Pull-to-Refresh)...

    ios 学习笔记

    本文档基于给定的“iOS学习笔记”,深入探讨iOS应用程序生命周期的关键概念、阶段以及如何处理这些阶段。 #### 二、基础知识 **1.1 入口点:** iOS应用的入口点位于`main.m`文件中的`main`函数。此函数通过调用`...

    IOS学习指导笔记

    此学习笔记,提供了学习IOS的路线图,方便大家有目的的去学习。大家可以根据学习路线去百度查找相关的学习资料。

    IOS学习笔记

    OS开发学习笔记,包含基本原理讲解及每篇附上的示例程序代码!帮助iOS开发初学者一步一步进阶,分享最新的学习心得和体会! http://blog.csdn.net/column/details/ryan-zone.html

    IOS 菜鸟笔记 之 项目 一 ( 源码 )

    【标题】"IOS 菜鸟笔记 之 项目 一 ( 源码 )" 提供的是一个初学者级别的 iOS 开发项目实例,通过源代码的形式帮助开发者了解 iOS 应用的基本架构和开发流程。这个项目可能是从创建一个新的 Xcode 工程开始,到实现...

    iOS学习笔记2(结合项目)--Category和Extension的区别

    Category实例 /** * 判断某个时间是否为今天 */ -(BOOL)isToday; /** * 判断某个时间是否为昨天 */ -(BOOL)isYesterday; /** * 判断某个时间是否为今年 */ -(BOOL)isYear; /** * 将某个时间格式化为yyyy-MM-...

Global site tag (gtag.js) - Google Analytics