从今天开始我们一起学习31个关于iPhone开发的小Demo,关于这些Demo都是来自国外网站,每一个都是一些小的练习,既然我们都是在学习,那么我们就应该遇到好的东西不放过,搞懂它,然后从中汲取精华为我所用。有人说“最好最快的学习编程,就是看别人的代码。”但是我觉得除了这些,我们更应该搞懂那些代码,实际的动手练习一下,弄懂其中的机制。然后我们在能够够在使用中得心应手。(仅仅是个人观点,可不能因为这些观点影响你的学习计划哦~~~).
我们看第一个Demo,这个Demo是关于时间显示的,一般我们获取了时间之后都只是当前时间,不能随着 时间而走动,而且不能够有那种LED显示的效果,因此在这里我们学习一下这些方法。
1、打开Xcode (这里我使用的是4.2),创建基于单一视图的工程,我们命名工程名为“MinutesToMidnight”,保存。
2、为了显示的效果,我们首先设置一下界面。打开“MinutesToMidnightViewController.xib”文件,在属性检查器中设置视图的backgroundcolor为blackcolor。然后我们从库中拖一个UILabel放置在视图的中央位置。并设置其文本为“12:00”,并且设置其文本颜色为redcolor。当然我们也可以使用代码直接设置,这里为了节省时间,就使用属性检查器进行设置了。
3、至此我们的界面就设置完成了,接下来我们为项目添加必要的代码.
4、打开AppDelegate.h文件,我们为项目生命一个timer,用来控制时间跳动频率。
#import <UIKit/UIKit.h> @class MinutesToMidnightViewController; @interface MinutesToMidnightAppDelegate : NSObject <UIApplicationDelegate> { IBOutlet UIWindow *window; IBOutlet MinutesToMidnightViewController *viewController; NSTimer *timer; //声明一个timer } -(void)onTimer; //声明timer的控制函数 @property (nonatomic, retain) UIWindow *window; @property (nonatomic, retain) MinutesToMidnightViewController *viewController; @end5、完成后我们打开AppDelegate.m文件,实现timer方法: - (void)applicationDidFinishLaunching:(UIApplication *)application { ...... timer = [NSTimer scheduledTimerWithTimeInterval:(1.0) target:self selector:@selector(onTimer) userInfo:nil repeats:YES]; ...... } - (void)onTimer { [viewController updateLabel]; } - (void)applicationWillTerminate:(UIApplication *)application { [timer invalidate]; }
6、完成后我们打开ViewController.h文件,声明一个UILabel的输出口。并声明一个更新label内容的方法updateLabel。
7、完成后我们打开ViewController.m文件,实现相应的方法。
这里要说明的是原来的例子中使用的是dateWithCalendarFormat:timeZone:方法,但是在最新版本貌似不支持此方法,因此我们使用了另一种方法。具体实现在Source Code。
8、为了让显示有LED的效果,我们需要设置label的字体:
[label setFont:[UIFont fontWithName:@"DBLCDTempBlack" size:128.0]];
9、最后一步,我们需要连接控件到file‘s ower。
OK,至此我们的这个小Demo就完成了,click -> Run or command + R!!
效果图: