一,本文讲解建立一个空项目,怎么一步一步的创建程序,总体的感觉一下程序流程  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)--项目建立与实现的更多相关文章

  1. 步步入佳境---UI入门(2)

    一,刚开始练习UI的时候,一般是在- (void)viewDidLoad方法中写代码测试,例如:- (void)viewDidLoad{    CGRect rect=CGRectMake(0, 0, ...

  2. 步步入佳境---UI入门(4) --简单练习

    一,创建SingleViewApplication 1,UILabel的简单使用 UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(0, ...

  3. 步步入佳境---UI入门(3) --单视图控制器

    视图控制器特点//1,抽象  视觉上没有效果//2,负责控制视图的显示方式//3,负责通知视图的显示内容//4,ios平台赋予的,收到内存警告和检测设备旋转@interface CHViewContr ...

  4. 一步一步使用ABP框架搭建正式项目系列教程之本地化详解

    返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 本篇目录 扯扯本地化 ABP中的本地化 小结 扯扯本地化 本节来说说本地化,也有叫国际化.全球化的,不管怎么个叫法,反正道理都是一 ...

  5. OSG入门即osgEarth建立一个地球的详细步骤

    OSG入门即osgEarth建立一个地球的详细步骤 转:http://blog.csdn.net/xiaol_deng/article/details/9246291 最近在学习有关osg的知识,刚开 ...

  6. jQuery UI 入门之实用实例分享

    jQuery UI 入门 jQuery UI 简介 jQuery UI 是一个建立在 jQuery JavaScript 库上的小部件和交互库,您可以使用它创建高度交互的 Web 应用程序.无论您是创 ...

  7. jQuery UI 入门之实用实例

    jQuery UI 入门 jQuery UI 简介 jQuery UI 是一个建立在 jQuery JavaScript 库上的小部件和交互库,您可以使用它创建高度交互的 Web 应用程序.无论您是创 ...

  8. 一步一步使用ABP框架搭建正式项目系列教程

    研究ABP框架好多天了,第一次看到这个框架的名称到现在已经很久了,但由于当时内功有限,看不太懂,所以就只是大概记住了ABP这个名字.最近几天,看到了园友@阳光铭睿的系列ABP教程,又点燃了我内心要研究 ...

  9. 【SSRS】入门篇(二) -- 建立数据源

    原文:[SSRS]入门篇(二) -- 建立数据源 通过 [SSRS]入门篇(一) -- 创建SSRS项目 这篇,我们建立了一个SSRS项目: 接下来,我们以 AdventureWorks2012 示例 ...

随机推荐

  1. 【Django】【四】测试

    [Testing in Django] 通过参数可控制Django项目不同级别的测试. 1. 运行sign应用下所有的测试用例: \\guest\python manage.py test sign ...

  2. Linux 普通用户拿到root权限及使用szrz命令上传下载文件

    1.如何拿到root权限 在shell里如果看到你的命令输入行最前面显示的是 $符号,说明目前账号只有系统的普通权限. 输入:sudo su 这时能看到shell的输入行最前面已经显示的是#号,说明已 ...

  3. Qt5.3.2_CentOS6.4_基本编程环境__20160306【勿删,繁琐】

    20160306 全程没有f/q ZC:使用的虚拟机环境是:博客园VMwareSkill 的 “CentOS6.4_x86_120g__20160306.rar” 1. 执行命令“gcc -v”,显示 ...

  4. 《Blue_Flke》团队项目软件系统设计改进

    团队项目系统设计改进: 1.分析项目系统设计说明书初稿的不足,特别是软件系统结构模型建模不完善内容 在上一次的项目系统设计说明书中没有很好的完成软件系统结构模型的建模设计,只做了基本的系统项目原型模型 ...

  5. JQuery 自己主动触发事件

    经常使用模拟 有时候,须要通过模拟用户操作,来达到单击的效果.比如在用户进入页面后,就触发click事件,而不须要用户去主动单击. 在JQuery中.能够使用trigger()方法完毕模拟操作.比如能 ...

  6. Android JNI(一)——NDK与JNI基础

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

  7. tomcat和java环境

    mac tomcat http://blog.csdn.net/huyisu/article/details/38372663 mac jdk 1.8 http://wlb.wlb.blog.163. ...

  8. Javascript 面向对象-继承

    JavaScript虽然不是面向对象的语言,但是我们通过构造可以让其支持面向对象,从而实现继承.重写等面向对象的特性.具体代码如下: //创建类Person function Person(age,n ...

  9. 显示Unicode 字节的对应字符的小技巧

    在一段smali代码里看到这样的代码 const-string v0, "\u7528\u6237\u9a8c\u8bc1\u8fc7\u671f\uff0c\u8bf7\u91cd\u65 ...

  10. 在浏览器外打开PDF文档

    One function you might find annoying with PDFs and PDF Readers is that when you click on a link to a ...