步步入佳境---UI入门(1)--项目建立与实现
一,本文讲解建立一个空项目,怎么一步一步的创建程序,总体的感觉一下程序流程 1,首先建立一个项目,如下:single view project,我们首先删除CHAppDelegate文件和Main.storyboard和CHViewController
要点:
//启动,创建,实例--应用程序对象,并且指定应用程序的代理对象
//程序启动到关闭称为应用程序的生命周期
//实例对象从分配内存到释放内存,称为实例对象的生命周期
//程序启动后,在程序内任何时间,任何文件内获得的实例对象都是同一个实例对象,这个实例对象叫做单例
//应用程序代理对象,处理应用程序对象的状态
进入main.m文件,删除不必要的头文件,UIApplicationMain修改如下:
return UIApplicationMain(argc, argv, nil,nil);运行程序发下crash掉了,呵呵
我们首先看看UIApplicationMain在API文档中的介绍:
This function is called in the main entry point to create the application object and the application delegate and set up the event cycle.
int UIApplicationMain (//这个函数在main方法中调用来创建应用程序对象和程序代理并且建立消息循环
int argc,
char *argv[],//前两个参数是Main函数里面的两个参数,传进来
NSString *principalClassName,//UIApplication类或子类的名字,如果设置为nil,会默认成UIApplication,一般不做设置. UIApplication is assumed.
NSString *delegateClassName//程序执行就会进入这个委托中执行消息循环
);
二.创建一个类FirstApplicationDelegate来作为主程序的代理类
我们准备将FirstApplicationDelegate作为应用程序对象的代理对象,所以它就应该接受应用程序对象的代理,实现UIApplicationDelegate协议 如下:
@interface FirstApplicationDelegate : UIResponder<UIApplicationDelegate>//在类的后面加上<UIApplicationDelegate>就是类必须实现这个协议
@property (nonatomic,retain) UIWindow *window;//创建窗口属性
@end
然后在主函数中修改为return UIApplicationMain(argc, argv, nil,NSStringFromClass([FirstApplicationDelegate class]));并添加头文件#import "FirstApplicationDelegate.h".
NSStringFromClass([FirstApplicationDelegate class])的操作作用:NSStringFromClass是把类名转化为字符串形式,[FirstApplicationDelegate class]是把这个类的类名返回.
三.创建ViewController类,继承于UIViewController作为应用程序的根视图
// 视图控制器的根(视图)加载完成后...
// 根视图与窗口的根(视图控制器)不是同一个对象...
我建立如下@interface CHViewController : UIViewController
在.m中实现代码如下:主要利用建立随机换色程序来介绍
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
// 声明按钮的实例对象// 实例化按钮的实例对象
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
// 设置按钮实例对象的大小和位置...
button.frame = CGRectMake(100, 100, 120.f, 120.f);
// 设置按钮实例对象的颜色...
button.backgroundColor = [UIColor orangeColor];
// 设置按钮实例对象的标题...
[button setTitle:@"点我啊" forState:UIControlStateNormal];
// 设置按钮实例对象在接受用户点击时,处理的方法...
// 这个方法,发送给谁呢?
[button addTarget:self action:@selector(didClickButton:) forControlEvents:UIControlEventTouchUpInside];//按钮事件处理函数
// 将按钮显示出来...
[self.view addSubview:button];//把按钮添加到根视图,根视图就是程序运行时你看到的第一个界面(暂时这么理解)
}
// 按钮触发的方法
- (void)didClickButton:(UIButton *)button
{
// // 创建随机颜色
// CGFloat r = arc4random()%1000/1000.0f;
// CGFloat g = arc4random()%1000/1000.0f;
// CGFloat b = arc4random()%1000/1000.0f;
// UIColor *randomColor = [UIColor colorWithRed:r green:g blue:b alpha:1.0f];
// 将随机颜色赋值给按钮的背景颜色
button.backgroundColor = [UIColor randomColor];
NSLog(@"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
}
// UIApplicationDelegate是个协议,定义了一堆监测程序执行方法,这些方法都有自己的触发事件
// 处理程序加载完成
// 程序启动,活跃/非活跃状态,前/后台切换,推送通知,内存警告等
为FirstApplicationDelegate添加内容如下:
@implementation FirstApplicationDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions NS_AVAILABLE_IOS(3_0)
{
//实例化应用程序窗口
//每个应用程序有且只有一个关键窗口
UIWindow *window=[[UIWindow alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
self.window=window;//将局部变量赋值给应用程序代理对象的属性
//设置背景色
window.backgroundColor=[UIColor whiteColor];
//设置窗口大小
//window.frame=CGRectMake(0, 0, 320, 480);
RootViewController * rootVC=[[RootViewController alloc]init];//实例化窗口内容
window.rootViewController=rootVC;
//将window对象设置成为应用程序对象的关键窗口
[window makeKeyAndVisible];
[window release];
return YES;
}
@end
步步入佳境---UI入门(1)--项目建立与实现的更多相关文章
- 步步入佳境---UI入门(2)
一,刚开始练习UI的时候,一般是在- (void)viewDidLoad方法中写代码测试,例如:- (void)viewDidLoad{ CGRect rect=CGRectMake(0, 0, ...
- 步步入佳境---UI入门(4) --简单练习
一,创建SingleViewApplication 1,UILabel的简单使用 UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(0, ...
- 步步入佳境---UI入门(3) --单视图控制器
视图控制器特点//1,抽象 视觉上没有效果//2,负责控制视图的显示方式//3,负责通知视图的显示内容//4,ios平台赋予的,收到内存警告和检测设备旋转@interface CHViewContr ...
- 一步一步使用ABP框架搭建正式项目系列教程之本地化详解
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 本篇目录 扯扯本地化 ABP中的本地化 小结 扯扯本地化 本节来说说本地化,也有叫国际化.全球化的,不管怎么个叫法,反正道理都是一 ...
- OSG入门即osgEarth建立一个地球的详细步骤
OSG入门即osgEarth建立一个地球的详细步骤 转:http://blog.csdn.net/xiaol_deng/article/details/9246291 最近在学习有关osg的知识,刚开 ...
- jQuery UI 入门之实用实例分享
jQuery UI 入门 jQuery UI 简介 jQuery UI 是一个建立在 jQuery JavaScript 库上的小部件和交互库,您可以使用它创建高度交互的 Web 应用程序.无论您是创 ...
- jQuery UI 入门之实用实例
jQuery UI 入门 jQuery UI 简介 jQuery UI 是一个建立在 jQuery JavaScript 库上的小部件和交互库,您可以使用它创建高度交互的 Web 应用程序.无论您是创 ...
- 一步一步使用ABP框架搭建正式项目系列教程
研究ABP框架好多天了,第一次看到这个框架的名称到现在已经很久了,但由于当时内功有限,看不太懂,所以就只是大概记住了ABP这个名字.最近几天,看到了园友@阳光铭睿的系列ABP教程,又点燃了我内心要研究 ...
- 【SSRS】入门篇(二) -- 建立数据源
原文:[SSRS]入门篇(二) -- 建立数据源 通过 [SSRS]入门篇(一) -- 创建SSRS项目 这篇,我们建立了一个SSRS项目: 接下来,我们以 AdventureWorks2012 示例 ...
随机推荐
- Linux——用户管理简单学习笔记(三)
用户组管理命令: groupadd -g 888 webadmin 创建用户组webadmin,其GID为888 删除用户组: groupdel 组名 修改用户组信息 groupmod groupmo ...
- ubuntu14.04 设置开机自启动脚本
方法1.将脚本放入/etc/rc.local文件中. 方法2.添加一个ubuntu的开机启动服务 分为以下几个步骤: 1)新建一个脚本文件 new_services.sh #!/bin/bash # ...
- Python day8常用格式化format类2
format常用格式化 tp1="i am {},age {},{}".format('LittlePage',18,'boy') tp2="i am {},age {} ...
- MongoDB(课时20 游标)
3.5 游标(重点) 所谓游标就是指数据可以一行行的进行操作,非常类似于ResultSet数据处理.在MongoDB里对游标的控制使用find()函数就可以返回游标.对于返回的游标如果想进行操作,使用 ...
- S4 对象系统
上一节中,我们介绍了 S3 系统.与大多数其他编程语言的面向对象系统不同,与那些类被定义为固定结构,且随着程序编译有确定的方法分派的系统相比,S3 系统显得非常不严谨.当我们定义一个 S3 类时,几乎 ...
- STL__size_t, ptrdiff_t, size_type, difference_type
http://blog.csdn.net/zhaowei123191/article/details/5617559 ize_t 是unsigned类型, 用于指明数组长度或下标,它必须是一个正数,s ...
- React生命周期钩子
最近的工作都很忙,所以很少完整的时间可以用来总结和回顾知识点,今天就趁着是周末,我准备在这里复习和回顾一下React的基础.工作中主要用的vue比较多,在工作中使用React也已经是一年前了,当时用的 ...
- Unity 如何在打包的时候执行一些逻辑
1.如果想让unity在打包的过程中,执行一些逻辑,那么该如何做呢?代码如下: using UnityEditor; using UnityEditor.Build; using UnityEngin ...
- 谈谈Java反射机制
原文出处: locality 写在前面:什么是java反射机制?我们又为什么要学它?当程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言.我们认为java并不是动态语言,但是它却有一个非常突 ...
- Linux中查看各文件夹大小(扫盘)
df -h ./ du -hs ./ du -h /ifs4/BC_RD/USER/lizhixin/my_project/human_chr22 | grep [[:digit:]+]G du [- ...