视图和viewcontroller

时间:2011-04-26 10:24:04

标签: iphone cocoa-touch ios uiview uiviewcontroller

我是一名新的iphone应用程序开发人员。我想知道view和viewcontroller之间有什么区别。

4 个答案:

答案 0 :(得分:11)

<强> UIView

  

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

     

因为您的应用程序会进行交互   与用户主要通过视图   对象,那些对象有一个数字   责任。这里只是一个   几个:

     

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

<强> UIViewController

  

UIViewController类提供   基本的观点管理模式   适用于iPhone应用程序基础的   视图控制器类支持   呈现相关视图,   支持管理模态视图,以及   支持轮换视图作为响应   设备方向的变化。   子类如   UINavigationController和   UITabBarController提供额外的功能   管理复杂的行为   视图控制器和层次结构   视图。

     

您使用的每个实例   UIViewController来管理视图   层次结构。典型的视图层次结构   由根视图 - 对其的引用组成   在视图中可用   这个类的属性 - 通常是一个   或更多呈现实际的子视图   内容。在iPhone和iPod touch上,   根视图通常填充整个   屏幕但在iPad上这个视图可能会填满   只是屏幕的一部分。同时   例如,视图控制器是   负责管理整个   查看层次结构,包括所有   子视图。

     

视图控制器紧密绑定   他们管理和参与的观点   响应者链用于处理   事件。视图控制器是   他们自己的后代   UIResponder类和插入   进入响应者链之间   托管根视图及其超级视图,   通常属于不同的   查看控制器。如果是看法   控制器的视图不处理   事件,视图控制器本身   处理事件的选项   在将事件传递给之前   上海华。

     

UIViewController类可以使用   应用程序的窗口处理   设备方向改变。如果   视图控制器支持新的   方向(由...确定)   它的返回值   shouldAutorotateToInterfaceOrientation:   方法),它动画过渡   从目前的方向到   新的一个。作为这种变化的一部分,它   也适用于任何调整规则   视图中的视图效果   层次结构。如果您想进行更改   到你的视图层次结构作为一部分   方向改变,你可以覆盖   UIViewController的方法   实施您的更改。对于   有关您需要的方法的信息   覆盖,请参阅“处理视图”   转“。

     

查看控制器是至关重要的   大多数iPhone的设计   应用。以下部分   提供有关使用的基本信息   的方法和属性   UIViewController类。另外   有关使用视图的信息   控制器来构建和管理你的   应用程序的用户界面,请参阅查看   适用于iOS的控制器编程指南。

答案 1 :(得分:7)

答案 2 :(得分:5)

ViewController - 主屏幕

View - 可以添加到ViewController的组件

答案 3 :(得分:0)

您熟悉模型 - 视图 - 控制器模式吗?在开始iPhone开发之前,您应该熟悉它。我推荐这本书Cocoa Design Patterns。相信我,从长远来看,它会帮助很多