iOS编程(双语版) - 视图 - 基本概念
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编程(双语版) - 视图 - 基本概念相关推荐
- IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法...
IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法 Author:hmjiangqq Email:jiangqqlmj@163.com ...
- iOS编程——经过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版)
iOS编程--通过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版) 很多的应用都需要用到手机的唯一标示,而且要求这个唯一标示不能因为应用app的卸载或者改变而变化. 在iO ...
- 达奇机器人编程学院_Wonder Workshop Dash Robot 达奇STEM编程机器人 中英文双语版
码农二代培养利器,可编程控制的儿童益智玩具~ Wonder Workshop奇幻工坊Dash达奇可编程控制机器人,外观使用可爱的球形设计,底下有轮子驱动,内置多种传感器.能够通过自家的APP控制Das ...
- [其它]iOS 13 正式版发布 iPhone 6s或更新型号均可升级
苹果今天(2019.09.20)发布了 iOS 13 正式版,可以升级的设备包括 iPhone 6s 或更新型号.第七代 iPod Touch. iOS 13 推出深色模式,为 iPhone 带来截然 ...
- 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录
目录 目录 关于这本书 必看知识点 最后 关于这本书 <Python 核心编程 (第二版)>是一本 Python 编程的入门书,分为 Python 核心(其实并不核心,应该叫基础) 和 高 ...
- IOS开发之表视图(UITableView)
IOS开发之表视图(UITableView)的基本介绍(一) (一):UITableView的基本概念 1.在IOS开发中,表视图的应用十分广泛和普及.因此掌握表视图的用法显得非常重要.一般情况下对于 ...
- 《iOS编程指南》——导读
本节书摘来自异步社区<iOS编程指南>一书中的目录,作者 [美]Alasdair Allan,更多章节内容可以访问云栖社区"异步社区"公众号查看 目 录 第 1 章 为 ...
- IOS开发-TableView表视图LV2
在上一章节IOS开发-TableView表视图基础的学习后, 我觉得对于表视图的学习不应只局限于基础知识的学习,应用在实战中的话想要构建丰富的多元化视图界面我想还是必须深入地再学习下. 于是有了这个L ...
- 中英双语版Arnold for Cinema 4D 2023(c4d阿诺德渲染器插件)
中英双语版Arnold for Cinema 4D 2023(c4d阿诺德渲染器插件) Arnold for Cinema 4D简介 Solid Angle Arnold渲染器是一个先进的跨平台渲染库 ...
最新文章
- 数据存储方式_寻找要操作数据的存储地址的过程称为寻址,几种寻址的方式分享...
- 面试官吐槽:面试了一个三本的学渣,开口就要一万六!
- 方糖全栈课 PHP React大系,方糖全栈课·PHP+React大系
- ubuntu部署java环境
- Apache实现一个ip(如:127.0.0.1)和多个域名(虚拟主机)绑定
- 【2012百度之星/初赛下】A:度度熊就是要刷排名第一
- Redis的RDB持久化和AOF持久化区别
- C#-invoke与sendmessage,findWindow的阻塞实验
- python列反过来_xlwings 教程:使用Python更快速地处理Excel
- 华为机试——字符串分隔
- Linux多进程的应用
- mean shift 图像分割(一、二、三)
- Linux Shell笔记2 函数
- 验证日期的正则表达式比较全面地验证
- 高德地图E/libEGL: call to OpenGL ES API with no current context (logged once per thread)
- 模块化编程的六大原则
- Android开发者指南-Manifest.xml-uses-feature
- 使用 @Resource或@Autowire时 Idea报错Could not autowire. No beans of 'xxxService' type found. more..出现红色波浪线
- 基于lora模块智能井盖解决方案
- 2015年2月2日 奶农倒牛奶的背后