主要内容:

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里写了。

芒果iOS开发UI课程第一节UIWindow相关推荐

  1. iOS开发UI篇—UIWindow简单介绍

    iOS开发UI篇-UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWi ...

  2. iOS开发UI篇—多控制器和导航控制器简单介绍

    iOS开发UI篇-多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...

  3. iOS开发UI篇—UITabBarController简单介绍

    iOS开发UI篇-UITabBarController简单介绍 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarControlle ...

  4. IOS开发UI篇—导航控制器属性和基本使用

    IOS开发UI篇-导航控制器属性和基本使用 一.导航控制器的一些属性和基本使用 1.把子控制器添加到导航控制器中的四种方法 (1) 1.创建一个导航控制器 UINavigationController ...

  5. iOS开发UI篇—Modal简单介绍

    iOS开发UI篇-Modal简单介绍 一.简单介绍 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展⽰出来 Modal的默认效果:新控制器从屏幕的 ...

  6. iOS开发UI基础—手写控件,frame,center和bounds属性

    iOS开发UI基础-手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4 ...

  7. iOS开发UI篇—Quartz2D使用(绘图路径)

    iOS开发UI篇-Quartz2D使用(绘图路径) 一.绘图路径 A.简单说明 在画线的时候,方法的内部默认创建一个path.它把路径都放到了path里面去. 1.创建路径  cgmutablepat ...

  8. iOS开发UI篇—推荐两个好用的Xcode插件(提供下载链接)

    iOS开发UI篇-推荐两个好用的Xcode插件(提供下载链接) 这里推荐两款好用的Xcode插件,并提供下载链接. 一.插件和使用如下: 1.两款插件 对项目中图片提供自动提示功能的插件:KSImag ...

  9. iOS开发UI篇—常见的项目文件介绍

    iOS开发UI篇-常见的项目文件介绍 一.项目文件结构示意图 二.文件介绍 1.products文件夹:主要用于mac电脑开发的可执行文件,ios开发用不到这个文件 2.frameworks文件夹主要 ...

最新文章

  1. php ci hooks,CI框架 -- 核心文件 之 Hooks.php
  2. ECMAScript 继承机制实现
  3. 微电网日前优化调度 。算例有代码(3)
  4. 在JSP页面中使用Ajax主题时的引入
  5. Google Guava学习笔记——基础工具类Joiner的使用
  6. 想不想在手机上敲 Python 代码?!这里有一款推荐方案
  7. ntp如何确认与服务器偏差_CDH集群时钟偏差问题
  8. 高效编排有状态应用——TiDB 的云原生实践与思考
  9. 一级计算机第65套题,全国计算机一级考试题库(附答案).pdf
  10. 压缩包上传 压缩并解压缩Rar/Zip
  11. 计算机二进制拨码,二进制拨码
  12. Linux下VirtualBox出现kernel driver not installed的解决方法
  13. bootbox的使用
  14. AXI3.0 AXI4.0 五大通道接口详细介绍
  15. 计算机纳入高考作文,高考作文听人家说今年的高考作文是用计算机批 – 手机爱问...
  16. 关闭或更改Windows自带输入法繁体简体切换(Ctrl+Shift+F)的快捷键
  17. 还不了解外贸流程?这一篇就够了(小声bb)
  18. 基于Pytorch实现的快速人脸识别模型
  19. 论文阅读笔记《Siamese Convolutional Neural Network for Camera Pose Estimation and Visual Servoing》
  20. HEVC vs AVS2

热门文章

  1. pdf文件转换jpg转换器
  2. 阿里云AIoT智慧人脸门禁
  3. Salesforce业务分析师(BA)认证—备考指南
  4. 【毕业设计】python 机器视觉 车牌识别 - opencv 深度学习 机器学习
  5. location.href用法
  6. 在64位虚拟机上编译C程序为32位的可执行文件
  7. Gartner:08年全球杀毒软件市场份额排名 微软第七
  8. 刘一男词汇课(从shift到string):“重复是记忆之母,理解是记忆之父。“
  9. 关于【豆瓣删贴】的技术解决方案
  10. 检测计量与计算机技术,测试计量技术及仪器