ViewControllers官方文档阅读记录

本文详细解析UIViewController类的功能,包括视图组织、数据整理、用户交互、资源管理和设备适应等关键任务。内容视图控制器与容器视图控制器的区别,以及它们在视图层级管理、事件处理和数据对象沟通中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ViewControllers

​ UIViewController类主要完成功能如下:定义了组织视图的方法和属性,管理子视图的视图层级、事件的处理机制、视图控制器之间的转换、与app其他部分协作。

一、分类
  • 内容视图控制器:展示app中其中一部分内容,是经常使用的控制器
  • 容器视图控制器:从其他视图控制器(作为child View Controller)收集信息,并且便于navigation以某种方式present这些视图控制器或者以不同的方式present出视图控制器的内容。
二、功能
1、视图的组织

每个视图控制器有一个root View,它包含视图控制器的所有内容,对于root VIew来说,开发者可以通过向root View添加视图来展示自己想要展示的内容。
在这里插入图片描述
但是对于不同类型的视图控制器,在组织视图方面有很大的区别。

  • 内容视图控制器负责管理自己的root View以及所有的子视图。

  • 容器视图控制器负责管理自己的视图以及子视图控制器的root View,不负责管理子视图控制器的内容,只负责它们的root View,根据容器控制器的设计sizeing 并且placing子视图的root View。(Managing View Layout.)

    例如,split view controller管理它的子视图控制器的大小和位置,但是子视图控制器管理自己视图的内容
    在这里插入图片描述

2、数据的整理与安排

典型的MVC结构,视图控制器作为媒介负责数据对象与视图对象的沟通,数据的处理应该交由数据处理类处理,尽量少放在控制器中。

感兴趣的可以看看官方文档Data Marshaling部分。

3、与用户交互

视图控制器是responder对象,可哟处理响应链传递来的事件。但是,视图一般自己处理了touch event,并将结果报告给与之关联的delegete或者terget 对象,所以视图控制器很少处理事件,尽管它有能力。总之,大部分的控制器的事件使用dlegete方法或者target-action 方法处理。

4、资源组织

负责安排管理自己的views及创建的对象,当系统掉用didReceiveenoryWarning方法时,移除不需要的引用。

5、适应设备

负责让自己的视图适配不同的屏幕、ipad,不拥挤,而不是针对不同的尺寸,提供不同的视图控制器和视图层级来适配。在iOS中,视图控制器需要处理粗粒度更改和细粒度更改。粗粒度的更改发生在视图控制器的特性更改时。特性是描述整体环境的属性,例如显示比例。两个最重要的特性是视图控制器的水平和垂直 size类,它们指示视图控制器在给定维度中有多少空间。您可以使用size类更改来更改视图的布局方式。

在给定的size类中,可能会发生更细粒度的大小更改。当用户将iPhone从纵向旋转到横向时,大小类可能不会改变,但屏幕尺寸通常会改变。使用自动布局时,uikit会自动调整视图的大小和位置以匹配新的尺寸。视图控制器可以根据需要进行其他调整。(The Adaptive Model.这个以后在探究吧)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员的修养

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值