Xcode5下使用纯代码构建简单的HelloWorld程序
转自:http://blog.csdn.net/developerxyf/article/details/12874935
新发布的Xcode5在使用模板创建工程的时候取消了以往是否要选择storyboard的选项,也就是说以后使用Xcode建立应用程序界面均统一使用storyboard来创建应用程序界面。可以看到随着时间的发展,在Xcode中一些旧的或者低级一些的东西会被逐步略去。但是不管是storyboard还是IB都只是界面生成辅助工具,不管以后还会发展出什么其他的界面生成辅助工具,使用纯源代码创建程序界面的方法在任何时候都应该不会失去作用,并且在界面灵活性、定制性方面比辅助工具要更有适用性。
进入正题,打开Xcode选择Empty Application模板创建新工程
填写HelloWorld作为工程名,选择好工程文件保存目录后,工程列表文件如下
这个时候点击Run按钮运行程序会得到一个空白的iphone界面
但同时在Debug area下面也回出现“
Application windows are expected to have a root view controller at the end of application launch
”的警告,这是因为应用程序代理在加载时需要一个试图控制器类作为作为他的"root view controller"。点击File->New->File 点击Cocoa Touch分类选择Objective-C Class输入HelloWorld作为类名。现在在我们的工程文件列表中包含了HelloWorldViewController.h和HelloWorldViewController.m文件
在AppDelegate.h中添加对HelloWorldViewController.h的引用
#import "HelloWorldViewController.h"
并且在AppDelegate.m中修改“application didFinishLaunching”方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColorwhiteColor];
HelloWorldViewController *myViewController = [[HelloWorldViewControlleralloc]init];
self.window.rootViewController = myViewController;
[self.windowmakeKeyAndVisible];
return YES;
}
这样就不会再出现警告了,接下来在自定义的试图控制器中添加需要显示“HelloWorld”的Label,在HelloWorldViewController.m中添加
@property (nonatomic, strong) UILabel *label;
和对此UILabel的生成和展示代码
- (void)viewDidLoad
{
[superviewDidLoad];
self.label = [[UILabelalloc]
initWithFrame:CGRectMake(115.0f, 150.0f, 200.0f, 30.0f)];
self.label.text = @"Hello World!";
[self.viewaddSubview:self.label];
}
initWithFrame方法确定标签的位置和大小,CGRectMake(X坐标,Y坐标,width,height)方法确定控件的位置属性。点击Run运行程序之后运行结果如下:
最新文章
- CYQ.Data V4系列全面开源(2013-08-04)
- 简单的学习心得:网易云课堂Android开发第四章服务、广播与酷特性
- chrome源码学习之:js与底层c++的通信
- 把字典的key value 拼接成字符串加上签名加密
- QTP实现功能测试的时候,当新版本的页面都改变了,应该如何解决
- expdp小记
- python 静态方法,类方法 ,类的继承
- [POJ 2443] Set Operation (bitset)
- 【二叉树遍历模版】前序遍历&;&;中序遍历&;&;后序遍历&;&;层次遍历&;&;Root->;Right->;Left遍历
- C#读取带命名空间的xml,xaml文件的解决方案
- 浅谈 trie树 及其实现
- firebug如何使用
- Python MySQLdb Mac安装遇到的问题
- 印象烟大PPT大赛
- Intellij IDEA WEB结构目录说明【转载】
- 将项目(代码)从GitHub上克隆(下载)到本地仓库
- html5学习之旅-html5的简易数据库开发(18)
- spring的事务操作(重点)
- keras入门(三)搭建CNN模型破解网站验证码
- idea如何搭建springboot框架