您的位置:首页 > 产品设计 > UI/UE

从零开始iOS8编程【UI设计之按钮加强版的HelloWold】

2014-11-27 22:37 197 查看
郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 

我要捐赠: 点击捐赠

Cocos2d-X源码下载:点我传送

加强版Hello World

实现步骤

1.创建HelloHaoMengZhu工程
在Xcode中创建HelloHaoMengZhu工程, 基于iPhone视图基础应用程序。
iPhone OS ->Application ->Single View Application

2.修改HelloHaoMengZhuViewController.h
我们需要UITextField控件接受文字和响应一个按钮点击事件, 
所以在h文件中我们要定义一个UITextField属性和一个响应事件方法。

3.修改HelloHaoMengZhuViewController.m
实现txtField属性

实现-(IBAction)onClickButton:(id)sender方法

4.使用IB设计页面, 摆放控件
打开Main.storyboard文件;

打开Library将控件拖入设计窗口 。

5.连接输出口
为了将控件属性通过屏幕“输入” 或“输出” ,我们需要定义“输出口” , 
在控制器中我们已经定义了与这个数据对应的属性:
@property ( nonatomic, retain) IBOutlet
UITextField *txtField;
UITextField用于展示输出和输入数据。 
在iPhone(包括Mac)开发时候控件属性要通过定义输出口才能在屏幕中使用的。

在IB中,点击鼠标右键,拖动New
Referencing Outlet连线到File’s Owner。
设计区TextField控件并选择属性txtField。 
其中File’s Owner代表控制器类。



6.处理事件
为了响应控件的事件, 我们需要在控制器中定义一个事件处理方法:
-(IBAction)onClickButton:(id)sender;

在iPhone(包括Mac)开发控件事件处理要自己编写对应方法, 
并在IB中将控件的事件与该方法连接起来。

在IB中, 用鼠标右键拖到Button控件到File’s
Owner,选择发送事件。
其中File’s
Owner代表控制器类。



7、编译运行
点击按钮在输入框里出现“Hello
HaoMengZhu.”



MVC设计模式

MVC是一种设计模式,上面的例子就使用了MVC的设计模式。
所谓设计模式就是解决某一特定问题的方案。
MVC是解决具有UI的应用系统的成熟解决方案,
在Cocoa应用系统中严格按照该模式实现。
M-Model(模型) 是应用系统中与视图对于部分的数据。
V -View(视图) 是应用系统中用户看到并与之交互的界面。
C-Controller(控制器) 是应用系统中起到控制器作用,接受用户事件,显示数据等等,与视图进行交互等。

Cocoa MVC
采用 MVC 设计模式意味着, Interface Builder 不需要编写或生成任何代码, 
您只需专注于应用程序的视图。 
Mac
的 Cocoa 绑定消除了大部分的黏合代码, 
它就像连接在
Xcode 编写的控制器和Interface Builder 设计的视图之间的一条线, 
用图形化的表示方法简化了二者之间的关系。
Interface Builder 和 Cocoa 可以快速开发地您的应用程序。







视图控制器的方法
主要包括:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:

(NSBundle *)nibBundleOrNil

- (void)loadView

- (void)viewDidLoad

- (void)didReceiveMemoryWarning

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

- (void)viewDidUnload

- (void)dealloc

下面我们一一详解:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
如果视图使用NIB文件创建, 在加载视图之前调用这个方法, 做一些初始化处理。

- (void)loadView

视图加载时候调用的方法一般不使用NIB文件创建视图时候使用, 而是通过代码创建视图对象。

- (void)viewDidLoad视图加载之后调用方法, 我们常常在这个方法中做视图初始化出来。

- (void)didReceiveMemoryWarning

当系统内存告警的时候, 调用的方法, 我们一般在该方法释放一些耗费资源的对象。

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

用于处理屏幕旋转的方法。

- (void)viewDidUnload

视图对象卸载的时候调用的方法,一般在把内存视图中属性设置为nil的。
示例:
-
( void) viewDidUnload {
self. txtField = nil;
}

- (void)dealloc

视图对象内存释放时候调用方法, 在该方法中先要释放成员变量。
示例:
-
( void) dealloc {

[txtField release];

[super dealloc];
}

输出口和动作

输出口( Outlet) , 为了实现控制器在视图上输入输出结果, 需要定义输出口 。
动作( Action) , 为了实现视图控制器响应视图事件, 需要定义动作。

输出口(Outlet) 
定义输出口 , 是在ViewController定义一个控件属性, 
如下:
h文件:
@interface Hello_WorldViewController :

UIViewController {

UITextField *txtField;

}

@property (nonatomic, retain) IBOutlet

UITextField *txtField;

m文件:
@synthesize txtField;

动作(Action) 
定义动作, 是在ViewController定义一个方法, 
如下:
h文件:
-(IBAction)onClickButton:(id)sender;

m文件:
-(IBAction)onClickButton:(id)sender {

txtField.text = @"Hello World.";

}

动作( Action) 是在控件器中的方法, 但它的返回类型必须是IBAction声明的, 该关键字告诉IB,
此方法是个Action, 可以被某个事件触发。

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载。

如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 

我要捐赠: 点击捐赠

Cocos2d-X源码下载:点我传送
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息