【问题标题】:view and viewcontroller视图和视图控制器
【发布时间】:2011-08-12 22:28:39
【问题描述】:

我是一个新的 iphone app 开发者。我想知道 view 和 viewcontroller 有什么区别。

【问题讨论】:

标签: iphone cocoa-touch ios uiview uiviewcontroller


【解决方案1】:

UIView

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

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

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

UIViewController

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

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

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

UIViewController 类适用于 要处理的应用程序窗口 设备方向改变。如果 视图控制器支持新的 方向(由 其返回值 shouldAutorotateToInterfaceOrientation: 方法),它动画过渡 从当前方向到 新的一个。作为这一变化的一部分,它 也适用于任何调整大小的规则 对其意见的影响 等级制度。如果您想进行更改 将您的视图层次结构作为 方向改变,你可以覆盖 UIViewController 的方法 实施您的更改。为了 有关您需要的方法的信息 覆盖,请参阅“处理视图 轮换。”

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

【讨论】:

  • 啊!看起来像一个普通的标题:-)
  • ;) 是的,可能是!但它不是;)
【解决方案2】:

【讨论】:

  • @Siju:如果这回答了你的问题,你应该接受答案。
【解决方案3】:

ViewController - 主屏幕

View - 可以添加到 ViewController 的组件

【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多