芒果iOS开发UI课程第一节UIWindow

原创 2015年11月18日 21:52:09

主要内容:

1.iOS介绍

2.iOS主要做什么

3.UI介绍

4.UIWindow


这是UI阶段的第一节课主要介绍iOS系统,以及相关的一些知识。还有做为iOS开发者我们应该如何创建我们的第一个UI程序。

iOS介绍:

iOS是苹果公司的移动操作系统,主要用于iPhone、iPad、iPad Mini、iPod Touch等移动产品。

iOS开发主要做什么:

做为一个iOS开发者,我们可以开发许许多多的我们日常生活中常用的软件,比如团购类的软件、地图导航类的软件、阅读软件、还有最近一直非常抢眼的智能家居软件、游戏等等的应用程序。

而且相对于Android平台,iOS平台用户拥有更好的付费习惯,iOS开发者比安卓开发者更容易赚钱。

UI介绍:

UI(User Interface):用户界面,用户能看到的各种各样的页面元素。(PS:在公司里边有一个职位大家平常也就他UI,他们是用户界面设计师,平常主要工作给程序猿们设计图片和切图)
iOS开发的话其实也就是把各种各样的UI空间集合到一起,再加上一些逻辑算法和网络数据就构成了我们所使用的软件。
想要开发出一款精美的应用程序,需要熟练掌握各种UI控件的用法。


UIWindow:

window是窗口的意思,每个app都需要借助window将内容展现给用户看。在iOS中,使用UIWindow类来表示窗口,通常一个应用程序只创建一个UIWindow对象。window的主要作用是呈现内容给用户,我们不会对window做太多操作。

如何创建window?

在创建window的时候,需要指定window的大小。通常window的大小(frame)与屏幕(UIScreen)大小一致。
示例代码如下:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    这里的[UIScreen mainScreen]是获取设备的整个屏幕,bounds是屏幕的边界也就是屏幕的大小。这里也就是创建了一个UIWindow的对象,然后指定了window的大小为屏幕的大小。

    一般UIWindow对象不用咱们自己创建,Xcode在创建工程的时候默认已经给我们创建好了,下边来看下AppDelegate.h文件:


//  AppDelegate.h

//  UILesson-UIWindowUIViewUILabel

//  芒果iOS

//  Created by 张茫原 on 15/11/18.

//  Copyright © 2015 芒果科技. All rights reserved.


#import <UIKit/UIKit.h>


@interface AppDelegate : UIResponder <UIApplicationDelegate>


//window是应用程序的窗口,每一个app都需要借助UIWindow对象将内容呈现给用户

//通常一个应用程序只有一个窗口(也就是之创建一个UIWindow对象)

//window的作用:呈现给用户UI界面,window只负责承载,但是我们并不会对window做过多的操作

@property (strong, nonatomic) UIWindow *window;


@end


上边代码中应用程序的代理类中默认已经创建好了一个UIWindow的属性。


下边来看下AppDelegate.m文件:

//  AppDelegate.m

//  UILesson-UIWindowUIViewUILabel

//  芒果iOS

//  Created by 张茫原 on 15/11/18.

//  Copyright © 2015 芒果科技. All rights reserved.

//


#import "AppDelegate.h"

//引入自定义ViewController的头文件

#import "RootViewController.h"


@interface AppDelegate ()


@end


@implementation AppDelegate


//应用程序启动之后进入此方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //初始化UIWindow对象,并且设置window的大小

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    // Override point for customization after application launch.应用程序启动之后书写自定义代码(咱们自己需要写的代码)的位置

    //在设置跟视图之前,需要先实例化(初始化)出来一个RootViewController的对象

    //UIViewController创建之后默认的背景颜色是透明的

    RootViewController *rootVC = [[RootViewController alloc] init];

    //rootVC做为window的根视图

    self.window.rootViewController = rootVC;    //rootVC引用计数为2

    //alloc之后需要release

    [rootVC release];

    

     //winow背景颜色设置为红色

    self.window.backgroundColor = [UIColor redColor];

    [self.window makeKeyAndVisible];

    return YES;

}


    我们看到AppDelegate.m文件中didFinishLaunchingWithOptions:里边UIWindow对象已经被创建好了,window下边有一行注释:Override point for customization after application launch.
应用程序启动之后书写自定义代码的位置。

    下边咱们就可以设置window的根视图了。咱们之后的代码就可以转移到RootViewController里写了。










版权声明:本文为博主原创文章。请尊重作者劳动成果,转载请注明出处。

相关文章推荐

我的第一篇文章

走出学校已经有3个月了,回想三个月前的自己是那么的自信满满。 相信自己一定能够在这软件园闯出一片天空。现在才知道自己要走的路还很远很远,要学的东西还有很多很多!在学校的时间我学到了很多, 至少从当初一...

字符串对象-string常用方法

JavaScript之字符串对象

spring框架学习01

spring基础

欢迎使用CSDN-markdown编辑器

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...

Spring入门程序及准备工作---01

spring-framework-x.x.x.RELEASE-dist.zip     ------Spring开发包          开发包目录结构:  ...

JavaScript 面向对象程序设计(上)——封装

JavaScript 面向对象程序设计(上)——封装 JavaScript 是一种非常灵活的面向对象程序设计语言,它与传统的强类型的面向对象程序设计语言(如 C++,Java,C# 等)有很大不同,...

欢迎使用CSDN-markdown编辑器

还有十几天就是我27岁的生日了,对我自己来说我心里始终有一个坎:26岁和27岁完全是两个不同的年龄段, 26岁还是小年轻, 27岁已经步入中年. 就是昨天,我的工作发生了巨大的变故, 迫使我不得不重...

markdown中实现首行缩进的两种方法

markdown中实现首行缩进的两种方法  由于markdown语法主要考虑的是英文,所以对于中文的首行缩进并不太友好,两种方法都可以完美解决这个问题。 把输入法由半角改为全角。 两次空格之后就能够有...

【Linux入门学习之】Linux文件权限与目录配置

一、Linux的文件权限 Linux最优秀的地方之一在于它的多用户、多任务环境。而为了让各个用户具有较保密的文件数据,文件的权限管理就相当重要了。Linux一般将文件可存取访问的身份分为三个类别...

线性回归Linear Regression-模型和参数求解

线性回归Linear Regression,模型详解和参数求解方法(梯度下降,正规方程)。
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)