gpt4 book ai didi

iphone - UIWindow UIView addSubview问题

转载 作者:行者123 更新时间:2023-12-03 21:18:29 30 4
gpt4 key购买 nike

我读过的每个视频教程和书籍都会显示以下代码,用于将 UIView 添加到 UIWindow。

[窗口addSubview:self.viewController.view];

我对上面代码的理解是,将一个“View”(这是 UIView 的实例)添加到窗口(这是 UIWindow 的实例)。让我分解一下(根据我的理解):

窗口(UIWindow)addSubview(将 View 添加到窗口的方法)Self.viewController.view(仅返回已在 UIViewController 类中实例化的“ View ”实例。

我遇到的第一个问题是我在苹果网站的 UIWindow 类引用文档中找不到“addSubview”方法。然而有人好心地向我指出 UIWindow 继承了 UIView 的 addsubview 方法。没关系,但是为什么所有书籍和在线文档都指出 addsubview 方法向窗口添加了一个 View - 但这怎么可能呢?真的很困惑。有人可以逐步解释一下这段代码的作用吗?如果UIWindow继承了UIView的addsubview方法,那么它如何返回继承树呢?真的输了。我真正需要的是小示例代码,其中包含逐步发生的情况的图表。真的会很感激。非常感谢

最佳答案

将窗口视为与屏幕或绘图对象直接关联的 View 。

在上面的示例中,window.view 不正确。窗口不包含 View ,它是具有附加行为的 View 。

假设您正在从 NIB 文件加载 UIViewController,则与 viewController 关联的 View 将通过访问该 View 来实例化。所以...

您可能会看到类似的代码

MyViewController *vc = [MyViewController alloc]initWithNibName:@"MyNibFile" bundle:nil]autorelease];
[window addSubView:vc.view];
[window makeKeyAndVisible];

View 只是 Window 的父类(super class),因此您可以使用任何公共(public) View 方法。

通常,加载 MainWindow.xib 文件时会实例化 AppDelegate 对象中的窗口。

你应该看到类似的东西

@property(nonatomic, retain) IBOutlet UIWindow *window;

在您的 AppDelegate 头文件中。 (IBOutlet 指令告诉在加载 nib 文件时初始化窗口对象。

请记住,UIWindow 只是具有附加行为和数据的 UIView。

希望这有帮助。

关于iphone - UIWindow UIView addSubview问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7543036/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com