2011-04-16 44 views
0

我有点困惑为UIWIndow目前不寻常的视图层。在UIKit视图混淆层

如果任何一个指的是用于一个UIWindow苹果UIKit的参考然后UIView的是一个UIWindow

NSObject-> UIResponder-> UIView->的UIWindow超类。

但是,当在XCode中创建一个新项目时,只有一个MainWindows.xib,它包含项目中其余的视图。这意味着UIWindow是UIView的超类。因此,UIWindow是child以及Parent UIView.Thats非常混乱的任何一个。

所以任何人都可以有与此相关的清晰的想法。

+0

'Parent'是一个超载的术语。在谈到继承时,父类与超类相同,所以'UIView'是'UIWindow'的父类或超类。在讨论聚合或组合时,父类是其实例包含其他实例的父类,如包含其他视图的视图(或窗口)。在Cocoa中,这个命名是superview(一个包含其他视图的视图)和子视图(包含在另一个视图中的视图)。两个定义都是正交的,彼此独立。 – 2011-04-16 09:12:04

回答

2

不要混淆继承层次结构和视图层次结构。

UIView实例可以有许多UIView类型的子视图,所以UIWindow是UIView,因此它可以包含其他UIViews作为子视图。

查看所有其他UI组件,如UIButton或UILabel,它们都是从UIView继承的,因此您可以将它们作为子视图添加到视图中。