读书频道 > 网站 > 网页设计 > iOS 6游戏开发入门经典(第2版)
2. 在Interface Builder中新建IBOutlet
14-04-02    奋斗的小年轻
收藏    我要投稿   
一个游戏案例贯穿全书,系统讲解开发iOS 6,游戏开发入门必备佳作,使用 iOS 6游戏开发入门经典(第2版) ,学习为iPhone 5和新iPad构建游戏app。本书以基于实践的办法,讲述如何使用iOS 6 SDK平台创建游戏立即去当当网订购

一个IBOutlet是在XIB文件中定义的一项内容与在类中声明的一个变量之间的连接。要将某个字段指定为IBOutlet,只需在类的头文件中,在字段声明的前面加上关键字IBOutlet即可。还可以通过Interface Builder创建IBOutlet。图2-17显示了如何在Interface Builder中创建一个IBOutlet。
 

2-17  Interface Builder中创建一个IBOutlet

我们可以在图2-17中看到在Interface Builder中创建一个IBOutlet的步骤。首先要注意的是,右侧的视图被拆分为Interface Builder和代码窗口。按快捷键command+option+return可启用此拆分视图。要创建IBOutlet,首先右击要创建IBOutlet的对象(A),示例中是Portrait Holder View。在弹出的对话框中,使用鼠标将New Referencing Outlet(B)右方的小圆点拖曳至右侧代码中要创建IBOutlet的位置(C)。在图2-17中,已经创建了一些IBOutlet引用。注意,这些IBOutlet引用都在ViewController.h头文件中创建。我们要使用的ViewController_iPhone和ViewController_iPad将继承该文件。程序清单2-5中显示了ViewControler.h的全部内容。

程序清单2-5  ViewController.h

#import <UIKit/UIKit.h>

#import "RockPaperScissorsController.h"

@interface ViewController : UIViewController{

IBOutlet UIView *landscapeView;

IBOutlet UIView *landscapeHolderView;

IBOutlet UIView *portraitView;

IBOutlet UIView *portraitHolderView;

IBOutlet RockPaperScissorsController *rockPaperScissorsController;

}

@end

在程序清单2-5中可以看到,共有5个IBOutlet引用。这使得我们可通过编程方式在运行时访问这些内容。Interface Builder在创建这些引用的同时,还会在ViewController的实现文件中添加一些清理代码。程序清单2-6显示了这些自动生成的代码。

程序清单2-6  ViewController.m(部分)

- (void)viewDidUnload

{

[landscapeView release];

landscapeView = nil;

[landscapeHolderView release];

landscapeHolderView = nil;

[portraitView release];

portraitView = nil;

[portraitHolderView release];

portraitHolderView = nil;

[rockPaperScissorsController release];

rockPaperScissorsController = nil;

[super viewDidUnload];

// Release any retained subviews of the main view.

// e.g. self.myOutlet = nil;

}

///...

- (void)dealloc {

[landscapeView release];

[landscapeHolderView release];

[portraitView release];

[portraitHolderView release];

[rockPaperScissorsController release];

[super dealloc];

}

在程序清单2-6中可以看到Interface Builder为创建的每个IBOutlet生成的代码。在任务viewDidUnload中,可以看到每个视图均被释放并且被设置为nil。同样,在任务dealloc中,可以看到每个视图同样被释放。下一节将讨论如何响应方向的变化,编写代码根据当前的屏幕方向获取不同的视图。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站