iOS:viewDidLoad中未正确设置视图高度

时间:2011-01-29 20:47:08

标签: iphone ios uiscrollview ios-4.2 viewdidload

我有一个从笔尖加载的视图控制器,我有一个高度为346像素的滚动视图。但是,当我这样做时:

int h = scrollView.frame.size.height;
NSLog(@"%d",h);

在viewDidLoad中我得到375。

我需要在viewDidLoad(或其他类似的方法)中使用适当的高度,以便我可以根据高度以编程方式设置滚动视图的内容(不要让它垂直'溢出',只是水平,它的分页)

滚动视图已打开每个自动调整行。 (全是鲜红色)。奇怪的是,当视图加载时,我可以看到滚动视图是(正确的)346像素高而不是375,因此它必须在viewDidLoad和显示视图之间的某处更改为正确的值。

我在这里走到了尽头,任何能够获得适当大小视图的方式都会非常有帮助。在此先感谢,如果您需要更多信息,请发表评论。

编辑:我解决它的方法是将一个0.1秒的计时器放入viewDidLoad,当调用该计时器时,我完成了我需要做的工作。这有点像黑客,所以任何其他建议都会非常感激。

2 个答案:

答案 0 :(得分:4)

执行其他布局类型计算的正确位置通常位于viewWillLayoutSubviewsviewDidLayoutSubviewsDocs here。同样来自“处理视图旋转”部分:

  

视图后也会调用viewWillLayoutSubviews方法   由其父母调整大小和定位。如果视图控制器不是   当方向发生变化时可见,然后是旋转方法   永远不会被称为。但是,调用viewWillLayoutSubviews方法   当视图变得可见时。

答案 1 :(得分:0)

看看这个link。 您未将子视图放置在超级视图中并进行布局。例如,在viewDidAppear:中获取您的视图大小。