在iOS中,场景(Scene)和视图(View)的区别是什么?

27

我是iOS的新手,我不太明白场景和视图之间的区别。不幸的是,苹果的文档没有帮助我。我的理解是场景是屏幕上看到的东西,但这不就是视图吗?这两个术语可互换吗?如果不能,那么它们在功能和最佳实践方面有什么区别?ViewController在这两者中的作用是什么?

感谢任何解释或链接。


3
这里提供两个链接,分别介绍了iOS场景与视图的不同。它们讨论了Storyboarding、Segues、Scenes、ViewControllers和Navigation等相关概念。通过翻译,我会尽力使原文的意思更清晰易懂,但不会对其进行解释或添加额外内容。链接如下:http://hubpages.com/hub/IOS-5-Storyboarding-Tutorial-using-Segues-Scenes-ViewControllers-Navigation 或 http://stackoverflow.com/questions/13229990/cocoa-scene-vs-view - Kevin
这真的很有帮助,解释了什么是场景(Scene),但我对视图(View)还有点摸不着头脑。它只是由ViewController控制的内容吗(听起来很直观)?如果是这样,那么它与场景有什么区别?是Storyboard处理的场景,而XIB文件处理的是视图吗? - CGTheLegend
1个回答

25

简单来说:

视图(View)

UIView是在屏幕上显示的矩形区域。

视图控制器(ViewController)

一组当前在屏幕上显示的Views。

在以下图片中,蓝色区域和黄色区域是Views,而整个屏幕是一个ViewController。

UIView解剖

场景(Scene)

一个特定序列中的ViewController。

进入图像描述

然而,技术定义略有不同:

UIView

UIViewCALayer的包装器。它保存了一个子视图数组,这意味着它本身就是一个视图集合。你可以将其想象为树结构。

ViewController

ViewController是一个控制器,它保存对根视图的引用。通过控制器,您可以遍历叶节点或任何子视图。

Scene

“场景”是Storyboard中一种ViewController的另一个术语。


你能详细解释一下如何与视图和场景进行交互吗?以及它们的最佳实践是什么? - CGTheLegend
底部的解释非常有帮助。 - CGTheLegend
@KunalBalani 你有最后回答中给出的技术定义的来源吗? - Utku
“Scene” 的定义如果没有上下文基本上是无用的。@Kevin 在问题中的评论更有用。 - Caleb Faruki
这个是用于 macOS 还是 (主要) 用于 IOS? - Nate Lockwood

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接