【问题标题】:Confused in UIKit view hierachy对 UIKit 视图层次结构感到困惑
【发布时间】:2011-04-16 08:48:13
【问题描述】:

我对 UIWIndow 的不寻常视图层次结构感到有些困惑。

如果有任何人参考了苹果 UIKit 的 UIWindow 参考,那么 UIView 就是 UIWindow 的超类

NSObject->UIResponder->UIView->UIWindow.

但是当一个人在 XCode 中创建一个新项目时,只有一个 MainWindows.xib,它包含项目中的其余视图。这意味着 UIWindow 是 UIView 的超类。所以 UIWindow 是子类和父类UIView.这对任何人来说都非常令人困惑。

那么任何人都可以对此有明确的想法。

【问题讨论】:

  • “父母”是一个重载的术语。说到继承,父类和超类是一样的,所以UIViewUIWindow的父类或者超类。在谈论聚合或组合时,父类是其实例包含其他实例的类,例如包含其他视图的视图(或窗口)。在 Cocoa 中,对此的命名法是 superview(包含其他视图的视图)和 subview(包含在另一个视图中的视图)。两个定义都是正交的,彼此独立。

标签: ios uiview uikit hierarchy uiwindow


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 2023-03-26
    • 2014-11-03
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多