1. 什么是视图?

视图显示为手机上的一块矩形区域,管理该区域的所有屏幕显示,它是UIView或者UIView的子类。

视图既可以从xib生成,也可以用代码生成。

2. 窗口

窗口是UIWindow或者它的子类。

视图结构的顶层便是app的窗口。

窗口必须充满设备的屏幕,因此,必须设置窗口的frame为屏幕的bounds。

(稍后我会讲解frame和bounds的区别)

代码如下:

Objective-C

UIWindow* w = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

Swift(iOS 8)

let w = UIWindow(frame: UIScreen.mainScreen().bounds)

iOS9以后代码明显简化了,系统会默认将屏幕的bounds赋给窗口的frame

Swift(iOS 9)

let w = UIWindow()

窗口在app的整个生命周期中存在,为了达到这个目的,app的delegate class有一个强引用(strong retain)的属性叫做window,它永远不会被释放。

如何切换自定义的主视图?

通常的做法是我们把自定义的视图控制器赋给窗口的rootViewController属性。

最后再通过makeKeyAndVisible方法使视图可见。

转载于:https://www.cnblogs.com/davidgu/p/5702924.html

iOS编程(双语版) - 视图 - 基本概念相关推荐

  1. IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法...

    IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法 Author:hmjiangqq Email:jiangqqlmj@163.com ...

  2. iOS编程——经过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版)

    iOS编程--通过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版) 很多的应用都需要用到手机的唯一标示,而且要求这个唯一标示不能因为应用app的卸载或者改变而变化. 在iO ...

  3. 达奇机器人编程学院_Wonder Workshop Dash Robot 达奇STEM编程机器人 中英文双语版

    码农二代培养利器,可编程控制的儿童益智玩具~ Wonder Workshop奇幻工坊Dash达奇可编程控制机器人,外观使用可爱的球形设计,底下有轮子驱动,内置多种传感器.能够通过自家的APP控制Das ...

  4. [其它]iOS 13 正式版发布 iPhone 6s或更新型号均可升级

    苹果今天(2019.09.20)发布了 iOS 13 正式版,可以升级的设备包括 iPhone 6s 或更新型号.第七代 iPod Touch. iOS 13 推出深色模式,为 iPhone 带来截然 ...

  5. 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录

    目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高 ...

  6. IOS开发之表视图(UITableView)

    IOS开发之表视图(UITableView)的基本介绍(一) (一):UITableView的基本概念 1.在IOS开发中,表视图的应用十分广泛和普及.因此掌握表视图的用法显得非常重要.一般情况下对于 ...

  7. 《iOS编程指南》——导读

    本节书摘来自异步社区<iOS编程指南>一书中的目录,作者 [美]Alasdair Allan,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 第 1 章 为 ...

  8. IOS开发-TableView表视图LV2

    在上一章节IOS开发-TableView表视图基础的学习后, 我觉得对于表视图的学习不应只局限于基础知识的学习,应用在实战中的话想要构建丰富的多元化视图界面我想还是必须深入地再学习下. 于是有了这个L ...

  9. 中英双语版Arnold for Cinema 4D 2023(c4d阿诺德渲染器插件)

    中英双语版Arnold for Cinema 4D 2023(c4d阿诺德渲染器插件) Arnold for Cinema 4D简介 Solid Angle Arnold渲染器是一个先进的跨平台渲染库 ...

最新文章

  1. 数据存储方式_寻找要操作数据的存储地址的过程称为寻址,几种寻址的方式分享...
  2. 面试官吐槽:面试了一个三本的学渣,开口就要一万六!
  3. 方糖全栈课 PHP React大系,方糖全栈课·PHP+React大系
  4. ubuntu部署java环境
  5. Apache实现一个ip(如:127.0.0.1)和多个域名(虚拟主机)绑定
  6. 【2012百度之星/初赛下】A:度度熊就是要刷排名第一
  7. Redis的RDB持久化和AOF持久化区别
  8. C#-invoke与sendmessage,findWindow的阻塞实验
  9. python列反过来_xlwings 教程:使用Python更快速地处理Excel
  10. 华为机试——字符串分隔
  11. Linux多进程的应用
  12. mean shift 图像分割(一、二、三)
  13. Linux Shell笔记2 函数
  14. 验证日期的正则表达式比较全面地验证
  15. 高德地图E/libEGL: call to OpenGL ES API with no current context (logged once per thread)
  16. 模块化编程的六大原则
  17. Android开发者指南-Manifest.xml-uses-feature
  18. 使用 @Resource或@Autowire时 Idea报错Could not autowire. No beans of 'xxxService' type found. more..出现红色波浪线
  19. 基于lora模块智能井盖解决方案
  20. 2015年2月2日 奶农倒牛奶的背后

热门文章

  1. oracle重新启动步骤
  2. 仿百度GIF验证码 GIFEncoder 跳动验证码 随机背景色、颜色、字体、子大小、偏移、干扰线等...
  3. GraphQL 配合 JWT 使用 —— Laravel RSS (二)
  4. NodeJs 的几种文件路径
  5. 简单定制自己的Centos系统(第三版)
  6. ie下面兼容性问题的一些总结(转)
  7. internet 协议入门
  8. 【阿里云产品公测】高大上的搜索服务OpenSearch, 你值得拥有!
  9. 编写一个函数,实现两个字符串的连接功能
  10. Mac OS X工具:版本控制SVN