什么是 UIViewController?
UIViewController
是界面的管理者,负责管理一个视图UIView
的生命周期和用户交互。
它包含一个view
属性,这个属性是一个 UIView
的实例,代表该控制器管理的根视图。
UIViewController
通过生命周期方法(如viewDidLoad
、viewWillAppear
等)来管理视图的显示和隐藏。
每个UIViewController
通常对应一个屏幕或一个功能模块。
什么是 UIView?
UIView
是界面上显示的内容,负责展示 UI 元素和处理触摸事件。
UIViewController
的根视图可以包含多个子视图,这些子视图可以是系统提供的控件(如按钮、标签等),也可以是自定义的视图。
UIView
是 UIViewController
管理的视图层次结构中的一部分。
它们之间的关系
UIViewController
通过其view
属性管理根视图,以及根视图中的所有子视图。
UIViewController
不直接处理绘图,而是通过UIView
来处理。
想象一下你正在进行一场演出,UIViewController
就像导演。它控制着舞台上的一切——什么时候灯光亮起,演员如何移动,舞台布景怎么变化。在应用程序中,UIViewController
控制着界面上各个元素的显示和交互。它决定了:
• 界面何时显示或隐藏。
• 用户与界面交互时,应用如何响应。
而 UIView
就是舞台本身,以及上面的布景和道具。它是用户可以看到并与之交互的部分。在应用中,UIView
包括按钮、标签、图片等界面元素。UIView
负责展示这些内容,但不处理背后的逻辑——这是 UIViewController
的工作。
UIViewController
(导演)告诉 UIView
(舞台)该展示什么内容和如何回应观众的互动。每个 UIViewController
都有一个主 View
,它可能包含多个子 View
,就像舞台上可能有多个道具和布景。
它们关系图如下:
+---------------------+
| UIViewController |
|---------------------|
| view: UIView | ◀─── 管理
+----------▲----------+
│
│
+----------┴----------+
| UIView | ◀─── 根视图
|---------------------|
| Subview 1 |
| Subview 2 |
| Subview 3 |
+---------------------+
通过代码或Storyboard
,UIViewController
可以创建和管理视图,并通过IBOutlet
连接到视图的子元素,以便在代码中操作它们。
代码如下:
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// 创建一个 UIView 实例
let myView = UIView()
myView.backgroundColor = .blue
// 将 myView 添加到 viewController 的根视图
self.view.addSubview(myView)
}
}
总结来说,UIViewController
是视图的管理者,负责逻辑控制和生命周期管理,而UIView
是实际显示在屏幕上的内容。