您的位置:首页 > 移动开发 > IOS开发

IOS应用程序第一个项目HelloWorld(一)

2013-03-03 15:21 387 查看
具体创建项目的方法与开发语言相关知识请阅读我之前的文章 本系列文章将着重讨论iPhone与iPad 应用程序入门的开发。

创建一个iPhone项目

[b]名称为HelloWorld,如图所示彩色矩形标示的为一些项目中比较重要的组成部分。

[/b]
HelloWorldAppDelegate:监听应用程序的周期,比如程序的启动,程序内存的警告,程序挂起后在恢复等等。
HelloWorldViewController: 控制应用程序的显示,跟视图有关的东西都在这里。
MainWindows.xib与HelloWorldViewController.xib: 可视化界面的布局,方便界面的设计,一会儿介绍它的使用方法。
main:最重要的一个类,iPhone程序的入口类。





接下来介绍这几各类重要的一些方法。
打开main.m这个入口类
UIApplicationMain函数:这个函数是iPhone应用开发的入口,在这里实例化应用程序,通知HelloWorldAppDelegate启动应用程序。

1
#import
<UIKit/UIKit.h>
2
3
int
main(
int
argc,
char
*argv[])
4
{
5
NSAutoreleasePool
*pool = [[NSAutoreleasePool alloc] init];
6
int
retVal
= UIApplicationMain(argc,argv, nil, nil);
7
[pool
release];
8
return
retVal;
9
}
HelloWorldAppDelegate.m


应用程序启动后进入这个方法,在这里创建程序的窗口,启动结束以后HelloWorldAppDelegate就不会在发挥作用 ,除非程序出现特殊情况,比如内存警告,程序的挂起与恢复 等等 正常情况下 程序会启动视图控制器,通知HelloWorldViewController去显示这个应用程序。



1
-
(
BOOL
)application:(UIApplication
*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
2
{
3
//
Override point for customization after application launch.
4
5
self.window.rootViewController
= self.viewController;
6
[self.window
makeKeyAndVisible];
7
return
YES;
8
}
HelloWorldViewController.m



程序界面显示之前调用,用于初始化显示内容。

1
//
Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
2
-
(
void
)viewDidLoad
3
{
4
[super
viewDidLoad];
5
}
下面构建第一个HelloWorld项目

首先打开 HelloWorldViewController.xib显示控制器,这时候IDE出现一个可视化编辑视图。


视图控件栏中存在很多控件 可以拖放使用,举个例子拖动右侧Lable控件至可视化编辑视图中,可放置任意位置,编辑Lable控件显示内容。





在编辑框中写入HelloWorld后保存,一行代码都不用添加直接运行程序。HelloWorld映入眼帘,简单吧 哇咔咔。







下面用代码来添加Lable控件


HelloWorldViewController.m

01
-
(
void
)viewDidLoad
02
{
03
[super
viewDidLoad];
04
05
//创建label视图
06
UILabel
*label = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 200, 30)];
07
//设置显示内容
08
label.text
= @
"雨松MOMO的程序世界"
;
09
//设置背景颜色
10
label.backgroundColor
= [UIColor blueColor];
11
//设置文字颜色
12
label.textColor
= [UIColor whiteColor];
13
//设置显示位置居中
14
label.textAlignment
= UITextAlignmentCenter;
15
//设置字体大小
16
label.font
= [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:10] size:20];
17
//将label添加到显示视图中
18
[self.view
addSubview:label];
19
20
//释放对象
21
[label
release];
22
}
运行程序 如图所示 使用视图添加的文本内容 与使用代码添加的文本内容都出现在了屏幕当中。





使用可视化布局添加一个按钮

01
#import
<UIKit/UIKit.h>
02
03
@interface
HelloWorldViewController : UIViewController
04
{
05
//定义了一个按钮buttonA
06
IBOutlet
UIButton *buttonA;
07
//定义了一个按钮buttonB
08
UIButton
*buttonB;
09
10
}
11
//声明A按钮被按下的一个方法(IBAction)
相当于(void)
12
-(IBAction)bttonPressed:(id)obj;
13
14
-(
void
)showDialog;
15
@end
在右侧栏中点中 鼠标 New Referencing Outlet 拉出一条线到左侧箭头指示方块上松开鼠标 这是会显示上面定义的IBOutlet UIButton ,选中这个buttonA 标示这个拖动的button控件和buttonA 绑定在了一起,然后鼠标点击右侧Touch up inside 同样拉出一条线到左侧箭头指示方块上松开鼠标 这时候会显示上面定义的方法buttonPressed 选中后 则标示 这个按钮点击后程序执行buttonPressed方法。





将按钮的事件绑定后在代码中去实现这个方法,点击后调用showDialog 方法弹出一个dialog框。

01
-
(
void
)bttonPressed:(id)obj
02
{
03
[self
showDialog];
04
05
}
06
07
-(
void
)showDialog
08
{
09
10
//这里说一下nil
这个东西就好比java 语言中的 null
11
UIAlertView
* alertA= [[UIAlertView alloc] initWithTitle:@
"我的视图"
message:@
"点开了弹出对话框"
delegate:self
cancelButtonTitle:@
"确定"
otherButtonTitles:
nil];
12
//objectiveC开发中调用方法是用"[]"
例如: [alertA addButtonWithTitle:@"取消"];
13
//如果是为方法赋值则类似java
对象.成员 例如 :textFieldA.text
14
//添加了一个取消按钮
15
[alertA
addButtonWithTitle:@
"取消"
];
16
//将这个UIAlerView
显示出来
17
[alertA
show];
18
//objective-C
不像java 有自己的垃圾回收机制 所以我们在编写程序中一定要注意释放内存 从一开始就养成良好习惯
19
[alertA
release];
20
}




这个方法为view视图在销毁的时候调用,所以在这里释放按钮对象。

01
-
(
void
)viewDidUnload
02
{
03
[super
viewDidUnload];
04
//
Release any retained subviews of the main view.
05
//
e.g. self.myOutlet = nil;
06
07
//在这里将按钮对象释放掉
08
[self.buttonA
release];
09
[self.buttonB
release];
10
}
完整代码

view
source

01
//
02
//
HelloWorldViewController.m
03
//
HelloWorld
04
//
05
//
Created by  雨松MOMO on 11-9-30.
06
//
Copyright 2011年 __MyCompanyName__. All rights reserved.
07
//
08
09
#import
"HelloWorldViewController.h"
10
11
@implementation
HelloWorldViewController
12
13
-
(
void
)didReceiveMemoryWarning
14
{
15
//
Releases the view if it doesn't have a superview.
16
[super
didReceiveMemoryWarning];
17
18
//
Release any cached data, images, etc that aren't in use.
19
}
20
21
#pragma
mark - View lifecycle
22
23
//
Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
24
-
(
void
)viewDidLoad
25
{
26
[super
viewDidLoad];
27
28
//创建label视图
29
UILabel
*label = [[UILabel alloc] initWithFrame:CGRectMake(0, 100, 200, 30)];
30
//设置显示内容
31
label.text
= @
"雨松MOMO的程序世界"
;
32
//设置背景颜色
33
label.backgroundColor
= [UIColor blueColor];
34
//设置文字颜色
35
label.textColor
= [UIColor whiteColor];
36
//设置显示位置居中
37
label.textAlignment
= UITextAlignmentCenter;
38
//设置字体大小
39
label.font
= [UIFont fontWithName:[[UIFont familyNames] objectAtIndex:10] size:20];
40
//将label添加到显示视图中
41
[self.view
addSubview:label];
42
43
//释放对象
44
[label
release];
45
46
//创建按钮
47
buttonB
= [UIButton buttonWithType:1];
48
//设置按钮范围
49
buttonB.frame
= CGRectMake(100, 250, 150, 30);
50
//设置按钮显示内容
51
[buttonB
setTitle:@
"代码添加按钮"
forState:UIControlStateNormal];
52
//设置按钮改变后
绑定响应方法
53
[buttonB
addTarget:self action:@selector(showDialog) forControlEvents:UIControlEventTouchUpInside];
54
55
//将label添加到显示视图中
56
[self.view
addSubview:buttonB];
57
58
}
59
60
-
(
void
)viewDidUnload
61
{
62
[super
viewDidUnload];
63
//
Release any retained subviews of the main view.
64
//
e.g. self.myOutlet = nil;
65
66
//在这里将按钮对象释放掉
67
[buttonA
release];
68
[buttonB
release];
69
70
}
71
72
-
(
BOOL
)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
73
{
74
//
Return YES for supported orientations
75
return
(interfaceOrientation
== UIInterfaceOrientationPortrait);
76
}
77
78
-
(
void
)bttonPressed:(id)obj
79
{
80
[self
showDialog];
81
82
}
83
84
-(
void
)showDialog
85
{
86
87
//这里说一下nil
这个东西就好比java 语言中的 null
88
UIAlertView
* alertA= [[UIAlertView alloc] initWithTitle:@
"我的视图"
message:@
"点开了弹出对话框"
delegate:self
cancelButtonTitle:@
"确定"
otherButtonTitles:
nil];
89
//objectiveC开发中调用方法是用"[]"
例如: [alertA addButtonWithTitle:@"取消"];
90
//如果是为方法赋值则类似java
对象.成员 例如 :textFieldA.text
91
//添加了一个取消按钮
92
[alertA
addButtonWithTitle:@
"取消"
];
93
//将这个UIAlerView
显示出来
94
[alertA
show];
95
//objective-C
不像java 有自己的垃圾回收机制 所以我们在编写程序中一定要注意释放内存 从一开始就养成良好习惯
96
[alertA
release];
97
}
98
99
@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: