Ios UIKit视图层次结构中的混乱

Ios UIKit视图层次结构中的混乱,ios,uiview,uikit,hierarchy,uiwindow,Ios,Uiview,Uikit,Hierarchy,Uiwindow,对于UIWIndow中出现的异常视图层次结构,我有点困惑 如果任何一个引用了UIWindow的apple UIKit引用,那么UIView就是UIWindow的超类 NSObject->UIResponder->UIView->UIWindow 但是在XCode中创建新项目时,只有一个MainWindows.xib,它包含项目中的其余视图。这意味着UIWindow是UIView的超类。因此UIWindow既是UIView的父级也是子级。这对任何人来说都是非常混乱的 因此,任何人都可以清楚地了解这

对于UIWIndow中出现的异常视图层次结构,我有点困惑

如果任何一个引用了UIWindow的apple UIKit引用,那么UIView就是UIWindow的超类

NSObject->UIResponder->UIView->UIWindow

但是在XCode中创建新项目时,只有一个MainWindows.xib,它包含项目中的其余视图。这意味着UIWindow是UIView的超类。因此UIWindow既是UIView的父级也是子级。这对任何人来说都是非常混乱的


因此,任何人都可以清楚地了解这一点。

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

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


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

“Parent”是一个重载术语。当谈到继承时,父类与超类相同,因此
UIView
UIWindow
的父类或超类。当谈到聚合或组合时,父类的实例包含其他实例,如包含其他视图的视图(或窗口)。在Cocoa中,其术语是superview(包含其他视图的视图)和subview(包含在其他视图中的视图)。两个定义都是正交的,相互独立。