gpt4 book ai didi

iphone - UIViewController 框架

转载 作者:行者123 更新时间:2023-11-29 13:49:28 24 4
gpt4 key购买 nike

我有以下设置。

一个带有 UIScrollView 的 pagingScrollViewController 作为其 View (self.view = scrollView)。在那个 scrollView 中,我将 rootViewController 的 View 添加为 subview 。rootViewController 的 View 是一个 UIView,我在其上添加一个或另一个 View (取决于内部逻辑)。

UIScrollView 使用等于 applicationFrame 的帧进行初始化,因此为 0、20、320、460。这很好,因为顶部有状态栏。

问题出现在将 rootViewController 的 View 添加到 ScrollView 时。在 rootViewController 的创建过程中,它的 View 是在 -loadView 中设置的,在我的例子中它仍然被注释掉了。这样就处理了标准的appel loadView。

它给了我一个 View ,它的帧也为 0、20、320、460。这不是我希望看到的,因为现在 rootViewController 的 View 被删除了 40 像素从实际 iPhone 屏幕的顶部。

现在,这当然可以通过在 -loadView 中手动设置 rootViewControllers View 或在 -viewDidLoad 中将 y 设置为 0 为其分配一个框架来轻松解决;

但我无法想象这就是 Apple 打算这样做的方式。我没有使用 Interface builder,所以也许这就是问题所在,苹果打算让我使用 IB,但我在这个问题上很固执:)

我是否以错误的方式使用了 viewControllers?这似乎是将 scrollView 的逻辑与其他 View 的逻辑分开的好方法。

将第二个 UIViewController 的 View 添加到第一个 UIViewController 的 View 的正确方法是什么。其中第一个 viewController.view 接收到 0、20、320、460 的帧。第二个 controller.view 接收到 0、0、320、460 的帧(所以基本上是第一个 controller.view 的边界)

那里有很多词 Controller 和 View 的使用,但希望问题很清楚。

最佳答案

回答我自己的问题...

Ravin 是对的。在阅读了 loadView 方法和 apple's view controller programming guide 之后我得出的结论是这是系统的默认行为。如果您想要其他任何东西,请覆盖 -loadView 并自己完成。实际上苹果声明如果你不使用 Nib ,你应该覆盖 -loadView 以创建至少一个基本的简单 View 。

关于iphone - UIViewController 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5648242/

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