关于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 ...
随机推荐
- ITPub 上的一道题,学习下思路
有意思的,从别处看来的即可为己用--拿来主义 数据库:MS SQL 2000: drop table mytest go create table mytest ( sn int, ...
- windows 2003 搭建一个vpn
最近从Photonvps.com 租了一台windows主机用来测试网站,512MB的内存,35GB的硬盘空间,每个月500GB的流量和2个独立IP地址.我感觉价格偏贵,不过售后服务还是蛮不错的,每次 ...
- (转)JS页面间传值
一:JavaScript静态页面值传递之URL篇 能过URL进行传值.把要传递的信息接在URL上. 例子: 参数传出页面Post.htm—> <input type="text& ...
- 中文翻译:pjsip教程(二)之ICE穿越打洞:Interactive Connectivity Establishment简介
1:pjsip教程(一)之PJNATH简介 2:pjsip教程(二)之ICE穿越打洞:Interactive Connectivity Establishment简介 3:pjsip教程(三)之ICE ...
- YouTube视频代码总结
var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api" ...
- [CSS]overflow内容溢出
定义和用法 overflow 属性规定当内容溢出元素框时发生的事情. 说明 这个属性定义溢出元素内容区的内容会如何处理.如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机制.因此,有 ...
- CURL传输与获取功能
什么是CURL? 利用URL语法爱命令行方式下工作的文件传输工具.它支持很多协议.它支持认证功能.php中常用都实现更复杂的传输功能. 实现的功能: 1.实现远程获取和采集内容 2.实现PHP 网页版 ...
- smarty 模板 数字自动添加
section: section的产生是为解决foreach的不足的,与foreach一样,它用于设计模板内的循环块,它较为复杂,可极大程序上满足程序需要,所以在程序中我习惯使用它而不使用foreac ...
- java printf与println的区别
Java中的println和printf的区别在于:println是用于输出参数内容,然后换行,其参数个数固定为一个.printf是用于输出带各种数据类型的占位符的参数,其参数个数是不定的.
- 快速搭建高速稳定三层B/S架构