Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UIViewController框架_Iphone_Ios_Uiview_Uiviewcontroller_Uiscrollview - Fatal编程技术网

Iphone UIViewController框架

Iphone UIViewController框架,iphone,ios,uiview,uiviewcontroller,uiscrollview,Iphone,Ios,Uiview,Uiviewcontroller,Uiscrollview,我有以下设置 以UIScrollView作为其视图(self.view=scrollView)的pagingScrollViewController。 在该滚动视图中,我将rootViewController的视图添加为子视图。 rootViewController的视图是一个UIView,我在其上添加了一个或另一个视图(取决于内部逻辑) UIScrollView使用与applicationFrame相等的帧进行初始化,即0、20、320、460。这很好,因为顶部有状态栏 将rootViewCo

我有以下设置

以UIScrollView作为其视图(self.view=scrollView)的pagingScrollViewController。 在该滚动视图中,我将rootViewController的视图添加为子视图。 rootViewController的视图是一个UIView,我在其上添加了一个或另一个视图(取决于内部逻辑)

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

将rootViewController的视图添加到scrollview时会出现问题。在rootViewController的创建过程中,它的视图是在-loadView中设置的,在我的例子中,它仍然被注释掉。因此,将处理标准appel loadView

它给了我一个视图,它的帧也为0,20,320460。这不是我想看到的,因为现在rootViewController的视图从实际的iphone屏幕顶部移除了40个像素

现在,通过在-loadView中手动设置rootViewControllers视图,或者在-viewDidLoad中为其分配一个y设置为0的帧,这当然很容易解决

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

我是否以错误的方式使用ViewController?这似乎是将scrollView的逻辑与另一个视图的逻辑分开的好方法

将第二个UIViewController的视图添加到第一个UIViewController的视图的正确方法是什么。其中第一个viewController.view接收0、20、320、460帧。和de second controller.view一个0、0、320、460的帧(因此基本上是第一个controller.view的边界)


这里有很多controller和view这个词的用法,希望问题很清楚。

回答我自己的问题

拉文是对的。
在阅读了loadView方法之后,我得出结论,这是系统的默认行为。如果您还需要其他内容,请重写-loadView并自己完成。事实上,苹果表示,如果您不使用NIB,您应该重写-loadView以创建至少一个基本的简单视图

回答我自己的问题

拉文是对的。
在阅读了loadView方法之后,我得出结论,这是系统的默认行为。如果您还需要其他内容,请重写-loadView并自己完成。事实上,苹果表示,如果您不使用NIB,您应该重写-loadView以创建至少一个基本的简单视图

你是如何初始化rootViewController的视图框架的?我不是,这是工作中的魔法。如果不重写-loadView,系统将为您创建一个视图。不幸的是,帧为0,20320460。这就是答案本身。您的rootViewController具有系统提供的帧0,20320460。因此,当您将其添加到视图(这是正常的)时,它将相对较低,y=20。请注意:“在该滚动视图中,我将rootViewController的视图添加为子视图”。苹果表示:显示屏幕上只有一个视图控制器。如果您的pagingScrollView控制器不属于rootViewController,您将收到级别为2的内存警告。@inovaction。。。谢谢你的提示!你是如何初始化rootViewController的视图框架的?我不是,这是工作中的魔法。如果不重写-loadView,系统将为您创建一个视图。不幸的是,帧为0,20320460。这就是答案本身。您的rootViewController具有系统提供的帧0,20320460。因此,当您将其添加到视图(这是正常的)时,它将相对较低,y=20。请注意:“在该滚动视图中,我将rootViewController的视图添加为子视图”。苹果表示:显示屏幕上只有一个视图控制器。如果您的pagingScrollView控制器不属于rootViewController,您将收到级别为2的内存警告。@inovaction。。。谢谢你的提示!