当前位置:天才代写 > tutorial > JAVA 教程 > iphone进修之旅之实例:LED电子时钟

iphone进修之旅之实例:LED电子时钟

2017-11-13 08:00 星期一 所属: JAVA 教程 浏览:670

副标题#e#

在我们的iphone上假如有一个LED显示的电子时钟会有一种出格的感受吧,呵呵。

首先,我们打开Xcode,点击File→New Project,选择iPhone OS→Application,在这里我们选择View-based Application模版(我们的整个应用措施只有一个视图),点选Choose之后生存为LEDClick工程(默认整个工程会生存在/Users/当前登岸用户名/Documents下面)。之后点击OK就建设了了整个目次。

我们来看Groups&Files窗体,它分类显示了项目中的所有的信息。下面我们来举办详细的措施编写。对付我们来说,整个措施只有一个输出口(IBOutlet),我们会将当前的时候通过这个输出口显示出来。整个措施用到的主要有时间节制函数与计时器。

打开Classes文件夹中的LEDClockAppDelegate.h文件,这是一个应用措施委托的头文件,我们在个中添加一个NSTimer类的引用工具声明,同时添加一个无返回值的函数onInterval来实现时钟应用的计时成果,每隔一秒钟举办一次时钟计时.

Java代码

//
// LEDClockAppDelegate.h 
// LEDClock
//
// Created by blessdyb on 09-9-5.
// Copyright mobroad.com 2009. All rights reserved.
//

#import <UIKit/UIKit.h>

@class LEDClockViewController;

@interface LEDClockAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
LEDClockViewController *viewController;
NSTimer *timer;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet LEDClockViewController *viewController;

-(void) onInterval;

@end

之后进入委托措施的实现文件LEDClockAppDelegate.h中(假如你是在LEDClockAppDelegate.h中,那点击option+command+↑,就可以直接跳转到相应的实现文件中)。

Objective-c代码

//
// LEDClockAppDelegate.m
// LEDClock
//
// Created by blessdyb on 09-9-5.
// Copyright mobroad.com 2009. All rights reserved.
//

#import "LEDClockAppDelegate.h"
#import "LEDClockViewController.h"

@implementation LEDClockAppDelegate 

@synthesize window;
@synthesize viewController;

- (void)applicationDidFinishLaunching:(UIApplication *)application {

timer=[NSTimer scheduledTimerWithTimeInterval:(1.0) target:self selector:@selector(onInterval) userInfo:nil repeats:YES];
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}

-(void) onInterval{
[viewController interval];
}

- (void)dealloc {
[timer release];
[viewController release];
[window release];
[super dealloc];
}

@end 


#p#副标题#e#

下面我们举办节制器类的编程实现。首先来看它的头文件,双击LEDClockViewController.h文件,我们在这里完成输进口的界说。由于我们的LED电子时钟是在一个标签上显示的,所以我们在这里声明一个UILabel的实例做为节制器类的属性,同时声明一个interval的无返回值要领(这下知道适才委托类中的挪用是怎么回事了吧)。

Objective-c代码

//
// LEDClockViewController.h 
// LEDClock
//
// Created by blessdyb on 09-9-5.
// Copyright mobroad.com 2009. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface LEDClockViewController : UIViewController {
IBOutlet UILabel *timerLabel;
}

@property (nonatomic, retain) UILabel *timerLabel;

-(void) interval;

@end 

下面进入节制器类的实现文件中对适才的界说举办实现,双击LEDClockViewController.m,我们首先需要配置整个措施视图加载时时钟显示标签的字体,巨细及初始化文本。这样,在计时器开始运行后,我们只需要每过一秒种改变显示标签的文本值就可以了。

Objective-c代码

//
// LEDClockViewController.m 
// LEDClock
//
// Created by blessdyb on 09-9-5.
// Copyright mobroad.com 2009. All rights reserved.
//

#import "LEDClockViewController.h"

@implementation LEDClockViewController

@synthesize timerLabel;

-(void) interval{
NSUInteger unitFlags=NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSCalendar *calendar=[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *date=[NSDate date];
NSDateComponents *now=[calendar components:unitFlags fromDate:date];
int hour=[now hour];
int minute=[now minute];
int second=[now second];
[timerLabel setText:[NSString stringWithFormat:@"%02d:%02d:%02d",hour,minute,second]];
[calendar release];
}

/*
// The designated initializer. Override to perform setup that is required before the view is loaded.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
*/

/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
}
*/

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[timerLabel setFont:[UIFont fontWithName:@"DBLCDTempBlack" size:50.0]];
[timerLabel setText:@"电子时钟"];
[super viewDidLoad];
}

// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
//return (interfaceOrientation == UIInterfaceOrientationPortrait);
return YES;
}

- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}

- (void)dealloc {
[timerLabel release];
[super dealloc];
}

@end 

#p#副标题#e#

#p#分页标题#e#

接着我们需要完成措施的界面设计及元素毗连,我们来看Resources目次下的文件,这里有三个文件,一个是LEDClockViewController.xib,一个是MainWindow.nib(主要是让应用措施委托、主窗口和视图节制器实例在运行时建设),尚有一个LEDClock-info.plist(应用措施的各类参数设置)文件。

双击LEDClockViewController.xib文件,之后会默认打开Interface Builder,我们会看到一个文件打点器窗口,个中有File’s Owner,First Responder 及View.双击View图标后会呈现一个窗口,这就是我们应用措施在运行时最终被加载的视图,我们在菜单栏选取Tools→Inspector,之后就会呈现一个View Attributes的窗口,在内里可以编辑视图的各类属性,在这里我们让它的配景(Background)为玄色。之后再选取Tools→Library,打开库面板,我们在Library中找到Label控件,用鼠标选中后拖放到适才打开的View窗口中,同样打开属性选择器后变动当前Label控件的巨细及字体色彩,在这里我们配置它的色彩为赤色。

最后是整个措施最重要的一个步调,元素的毗连,我们选中xib窗口中的File’s Owner图标,同时按住Ctrl按键后往视图上的Label控件偏向拖动,此时会呈现一根蓝色的线条,当这根线条达到Label控件后Label控件变为选中状态,之后就会呈现一个Outlets框,选中timerLabel后单击就可以完成了。(这个步调完成了后可以先选中Label控件后点Tools→Connections Inspector后会看到弹出的窗口中的Referencing Outlets中呈现一个毗连项)。

这样整个措施就编写完成。我们选择Xcode中的Run后打开iPhone模仿器就可以看到整个措施的运行功效了。

iphone学习之旅之实例:LED电子时钟

 

    关键字:

天才代写-代写联系方式