Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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
Objective c UIScrollView边界尚未在“中调整大小”;viewDidLoad";_Objective C_Cocoa Touch_Ipad_Uiscrollview - Fatal编程技术网

Objective c UIScrollView边界尚未在“中调整大小”;viewDidLoad";

Objective c UIScrollView边界尚未在“中调整大小”;viewDidLoad";,objective-c,cocoa-touch,ipad,uiscrollview,Objective C,Cocoa Touch,Ipad,Uiscrollview,我有一个UIViewController子类,其视图在NIB文件中配置。该视图具有UIScrollView子视图 UIScrollView几乎占据了整个NIB文件,但它的superview作为子视图添加到更小的视图中(在不同的NIB中配置)-例如,UIScrollView是其自身NIB高度的80%,但最终仅为应用程序窗口高度的10% 当我在viewController的viewDidLoad方法中调用[scrollView bounds].size.height时,我得到的是scrollView

我有一个UIViewController子类,其视图在NIB文件中配置。该视图具有UIScrollView子视图

UIScrollView几乎占据了整个NIB文件,但它的superview作为子视图添加到更小的视图中(在不同的NIB中配置)-例如,UIScrollView是其自身NIB高度的80%,但最终仅为应用程序窗口高度的10%

当我在viewController的viewDidLoad方法中调用[scrollView bounds].size.height时,我得到的是scrollView相对于它自己的笔尖的高度,而不是它最终根据超级视图调整大小的高度(例如,窗口高度的80%,而不是10%)

如果稍后调用[scrollView bounds].size.height(例如,处理旋转事件),则会得到正确的值


如何在开始时获得正确的重新调整大小的值?

假设我正在跟踪,则在加载视图控制器后一定会有某个点,此时您可以获取.view并将其插入到另一个子视图中?如果是这样,那么将调整边界。您无法在viewDidLoad中获取它们,因为视图无法知道您将来将如何使用它。即使调用将其作为子视图插入是加载视图控制器后要做的第一件事,但在实际将视图放置到任何位置之前,视图访问器将导致视图加载,从而导致viewDidLoad


由于bounds有一个getter和setter,因此它应该与键值编码兼容,在这种情况下,您可以使用viewDidLoad在bounds上注册一个观察者,并在边界更改时执行您需要执行的任何操作。

您是否尝试过在
视图中处理它将出现:
ViewDidAspect

使用“ViewDidAspect”工作。在“主”视图控制器中,我分配并启动“滚动”视图控制器(其NIB包括UIScrollView)。在添加了scroll view控制器的视图作为主视图控制器视图的子视图之后,我在scroll view控制器上调用了viewDidAppear,并在那里处理了边界检索。谢谢