IOS学习整理(一)视图层次结构与视图控制器

最近开始学习ios编程,因为以前学习过c/c++等编程语言,所以初略过了一遍object c的语法基础。之后开始学习ios的控件,这里主要整理一下关于ios控件的api,加深自己的印象。学习书籍是ios编程第四版。

首先是视图与视图层次结构,如下图。第一次使用的starUML建模软件,因为没接触过这个东西,故可能画法有错误,不过主要也就是表达一下视图层次结构的概念。

UIWindow作为iOS程序的窗口(也可以说是根视图),它就像一个容器,可以用来存放自己定义的各个子视图(UIView或其子类)。层次结构中的每个视图分别绘制自己,视图会将自己绘制在图层上,如同cocos2d-x的层layer,每个UIView对象都有一个layer属性,指向一个CALayer类的对象。

为UIWindow添加View的方法为[self.window addSubView:(View的名字)];当然也可以设置window的rootViewController属性,rootViewController的类型为UIViewController类型,即视图控制器。每个UIViewController或者是继承自UIViewController的子类都有一个view属性,view属性指向一个UIView对象。 UIViewController对象可以管理一个视图层次结构,view就是这个视图层次结构的根视图,当程序将view作为子视图加入窗口时,也会加入UIViewController对象所管理的整个视图层次结构。

视图控制器在应用需要将其管理的某个视图显示到屏幕上时,它才会创建其视图。这是一种延迟加载的方法,可以提高内存的使用效率。

视图控制器可以通过两种方式创建视图层次结构:

1.代码方式:覆盖UIViewController中的loadView方法

2.NIB文件方式:使用Interface Builder创建一个NIB文件,然后加入所需的视图层次结构,最后视图控制器会在运行时加载NIB文件编译而成的XIB文件。

在视图控制器刚被创建时,其view属性为nil,当应用需要视图控制器控制的视图显示在屏幕上时,如果view属性为nil,会自动调用loadView方法。

以上为视图控制器与视图控制器的基本概念。很多语言都是书本上的,摘抄以做记录。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值