关于View和VIewController的关系和理解
之前看过关老师的视频之后就有写关于视图切换的程序,不过那是很久之前了,那时候也不知道什么是View,什么是VIewController,就知道照着写。这次项目的时候,我又碰到了这个问题,我自以为比较能够掌握其中的精髓了,看了一遍关老师的视频讲解之后就开始自己做视图的切换。。。一塌糊涂,根本不能正常运行,完全弄不懂View和ViewController的关系,不能够正常使用了。所以各种搜索去弄个清楚。
View
VIew就是某个对象的视图,代表了这个对象的图形界面。
所有能够显示的控件都有View的属性,比如UIButton,UISlider,UIImageView
只不过某些控件的View是可见的属性,某些控件的View是不可见的属性。
只要把想要显示的控件的View添加到当前正在显示的View上,就可以完成控件的显示了。
常用代码如下:
//self.view如果是当前正在显示的View的话,这句话就能够把recodeButton显示到屏幕上
[self.viewaddSubview:recodeButton];
//insertSubview能够把子视图插入到某个固定的层上
];
ViewController
跟字面意思一样ViewController就是View的控制器。
刚才所说的View添加子视图的方法就能完成对控件的显示,但是这段代码应该在哪里写呢,VC就是这样一个控制这些控件是否显示,怎么显示的地方。
每个VC都有一个View属性,这个View就是这个VC里面所有控件的视图的存放的地方,显示VC的View就显示了所有的这个VC里面的控件的视图。
我是这么理解的,我把程序分为几个独立的显示区。拿游戏做比方:比如开始界面为一个显示区,游戏登录界面为一个显示区,游戏界面为一个显示区。
我会把这些显示区分开管理,每个显示区一个VC。在某个显示区的VC里面就有这个显示区的所有控件,包括这些控件的创建,使用,还有显示这些控件的操作。所有的控件的View都添加到VC的View属性里面。
每个显示区的视图就是每个对应VC的View属性,如果要显示某个显示区,显示这个显示区的VC的View就可以了,
关于View和VIewController的关系和理解的更多相关文章
- View和viewController的生命周期
View和viewController的生命周期 一.ViewController的职责 对内管理与之关联的View,对外跟其他ViewController通信和协调.对于与之关联的View,View ...
- iOS view和viewController的生命周期
一.ViewController的职责 对内管理与之关联的View,对外跟其他ViewController通信和协调.对于与之关联的View,ViewController总是在需要的时候才加载视图,并 ...
- Android 自定义 view(四)—— onMeasure 方法理解
前言: 前面我们已经学过<Android 自定义 view(三)-- onDraw 方法理解>,那么接下我们还需要继续去理解自定义view里面的onMeasure 方法 推荐文章: htt ...
- Android 自定义 view(三)—— onDraw 方法理解
前言: 上一篇已经介绍了用自己定义的属性怎么简单定义一个view<Android 自定义view(二) -- attr 使用>,那么接下来我们继续深究自定义view,下一步将要去简单理解自 ...
- 转:如何学习SQL(第二部分:从关系角度理解SQL)
转自:http://blog.163.com/mig3719@126/blog/static/285720652010950825538/ 6. 从关系角度理解SQL 6.1. 关系和表 众所周知,我 ...
- cpu个数、核数、线程数、Java多线程关系的理解
cpu个数.核数.线程数.Java多线程关系的理解 2017年12月08日 15:35:37 一 cpu个数.核数.线程数的关系 cpu个数:是指物理上,也及硬件上的核心数: 核数:是逻辑上的,简单理 ...
- 我对uml类图关系的理解
uml类图的关系: 泛化关系也就是继承. 实现关系就是一个类实现另外一个接口. 依赖关系就是一个类使用了另外一个类,是一种使用关系,在这个类的某个服务中需要另外一个类来协助. 关联关系就是一类拥有另外 ...
- Activity、Window和View三者间的关系有一定的见解
一.简述如何将Activity展现在手机上 Tips: Activity本身是没办法处理显示什么控件(view)的,是通过PhoneWindow进行显示的 换句话说:activity就是在造Phone ...
- [IOS初学]ios 第一篇 storyboard 与viewcontroller的关系
学习了一下ios,把一个基本的概念搞清楚了,在android或者wp中,大家基本都是习惯与一个画面场景代表一个类,新建场景的时候自动新建了类,但在ios中使用了storyboard之后发现,在stor ...
随机推荐
- Codevs 1140 Jam的计数法 2006年NOIP全国联赛普及组
1140 Jam的计数法 2006年NOIP全国联赛普及组 传送门 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description Jam是个喜欢标 ...
- openssl移植
一.下载openssl 1.下载网址http://www.openssl.org/source/ 2.下载版本openssl-1.0.0q.tar.gz 二.编译openssl为静态库(X86 lin ...
- [设计模式]解释器(Interpreter)之大胆向MM示爱吧
为方便读者,本文已添加至索引: 设计模式 学习笔记索引 写在前面 “我刚写了个小程序,需要你来参与下.”我把MM叫到我的电脑旁,“来把下面这条命令打进去,这是个练习打(Pian)符(ni)号(de)的 ...
- JavaScript学习心得(二)
一选择DOCTYPE DOCTYPE是一种标准通用标记语言的文档类型声明,目的是告诉标准通用标记语言解析器使用什么样的文档类型定义(DTD)来解析文档. 网页从DOCTYPE开始,即<!DOCT ...
- Python学习 - 编写自己的ORM(2)
上一篇文章简单的实现了ORM(对象关系模型),这一篇文章主要实现简单的MySQL数据库操作. 想要操作数据库,首先要建立一个数据库连接.下面定义一个创建数据库连接的函数,得到一个连接叫做engine. ...
- 简单学C——第七天
函数 函数是C语言重要的组成部分,你现在,或者以后(如果C没什么变化的话)所写的任何一个C语言程序都是由一个一个的函数组合在一起的,当然,现在或许你只会在主函数 main中写一个小程序,那么在看了本篇 ...
- 2016030205 - ubuntu安装mysql
ubuntu上安装mysql 1.检查ubuntu上是否已经安装mysql sudo netstat -tap | grep mysql 本机上没有安装mysql 2.安装mysql服务器端和客户端 ...
- union 与struct的空间计算
一.x86 总体上遵循两个原则: 整体空间----占用空间最大的成员(的类型)所占字节数的整数倍 对齐原则----内存按结构成员的先后顺序排列,当排到该成员变量时,其前面已摆放的空间大小必须是该成员类 ...
- 配置公网的域名绑定IP
1. 在万网.美橙申请了一个域名,当然付完费了. 2. 点击"管理",找到了域名解析 3. 点击"域名解析" 注意"记录值",这 ...
- linux下安装MySQL5.6记录
把之前装的mysql卸载了,准备重新用代码包装一遍,问了一下公司的DBA,他推荐给我mysql-5.6.16版本,说这个版本比较稳定. 按照网上的教程安装,结果就少文件,我还在找原因的时候,同事来找我 ...