视图和viewcontroller

sai*_*sai 14 iphone cocoa-touch uiviewcontroller uiview ios

我是一个新的iPhone应用程序开发人员.我想知道view和viewcontroller有什么区别.

Vik*_*yan 11

的UIView

UIView类在屏幕上定义了一个矩形区域,以及用于管理该区域内容的接口.在运行时,视图对象处理其区域中任何内容的呈现,并处理与该内容的任何交互.UIView类本身提供了用背景颜色填充矩形区域的基本行为.通过子类化UIView并自己实现必要的绘图和事件处理代码,可以呈现更复杂的内容.UIKit框架还包括一组可以使用的标准子类,范围从简单按钮到复杂表.例如,UILabel对象绘制文本字符串,UIImageView对象绘制图像.

由于您的应用程序主要通过视图对象与用户交互,因此这些对象具有许多职责.这里仅仅是少数:

绘图和动画视图使用UIKit,Core Graphics和OpenGL ES等技术在其矩形区域中绘制内容.某些视图属性可以设置为新值.布局和子视图管理视图可能包含零个或多个子视图.每个视图都定义了与其父视图相关的默认大小调整行为.视图可以根据需要手动更改其子视图的大小和位置.事件处理视图是响应者,可以处理由UIResponder类定义的触摸事件和其他事件.视图可以使用addGestureRecognizer:方法安装手势识别器来处理常见手势.

的UIViewController

UIViewController类为iPhone应用程序提供基本的视图管理模型.基本视图控制器类支持相关视图的呈现,支持管理模态视图,并支持旋转视图以响应设备方向更改.诸如UINavigationController和UITabBarController之类的子类为管理视图控制器和视图的复杂层次结构提供了额外的行为.

您可以使用UIViewController的每个实例来管理视图层次结构.典型的视图层次结构包括根视图 - 该类的视图属性中可用的引用 - 通常是一个或多个呈现实际内容的子视图.在iPhone和iPod touch上,根视图通常会填满整个屏幕,但在iPad上,此视图可能只会填充整个屏幕的一部分.在这两种情况下,视图控制器都负责管理整个视图层次结构,包括所有子视图.

视图控制器与它们管理的视图紧密绑定,并参与用于处理事件的响应程序链.视图控制器本身是UIResponder类的后代,并插入到托管根视图与其超级视图之间的响应程序链中,后者通常属于不同的视图控制器.如果视图控制器的视图不处理事件,则视图控制器本身可以选择在将事件传递给superview之前处理事件.

UIViewController类与应用程序的窗口一起处理设备方向更改.如果视图控制器支持新方向(由其shouldAutorotateToInterfaceOrientation:方法的返回值确定),则它会动画从当前方向到新方向的转换.作为此更改的一部分,它还应用对其视图层次结构中的视图有效的任何调整大小规则.如果要在方向更改中更改视图层次结构,可以覆盖UIViewController的方法以实现更改.有关需要覆盖的方法的信息,请参阅"处理视图旋转".

视图控制器是大多数iPhone应用程序设计的基础.以下各节提供了有关使用UIViewController类的方法和属性的基本信息.有关使用视图控制器构建和管理应用程序用户界面的其他信息,请参阅适用于iOS的View Controller编程指南.

  • 您应链接源,而不仅仅是复制/粘贴文档. (8认同)
  • ;)Yeaaaah可能!但它不是;) (5认同)

Maa*_*eaL 5

ViewController - 主屏幕

视图 - 可以添加到ViewController的组件