2012-08-15 169 views
0

正如标题解释,我创建一个UIScrollView以编程方式在我的视图控制器的loadView,然后我将设置为self.view。UIScrollView设置框架坐在导航栏/标签栏之间

如果我在的loadView结束检查_pagingScrollView.frame,它等于

{{0,0},{320480}}。

不过,如果我检查我的scrollViewDidScroll委托中相同的属性,切换到

{{0,0},{320367}}

如何分配/初始化我的滚动视图,以便它的高度从一开始就将制表符/导航栏考虑在内,并给我367?我知道我可以简单地编写367代码,但我想知道这里发生了什么,以及为什么它以一个值开始,然后改变。

回答

0

我相信你看到的问题是由于你使用[UIScreen mainscreen]引用整个窗口(320,480)而引起的,并且不关心它内部的Nav/Tab视图。

而不是使用它,你可能更希望使用applicationFrame方法。

看到这个相关的帖子 - How to get the actual [UIScreen mainScreen] frame size?

此外,如果你的VC的上海华/ superViewController设置,你可以使用它们来获得更多相关的尺寸信息,因为MainScreen仍将仅指整个窗口,而不是把子视图控制器,比如nav/tabs考虑进去。

1

为什么不创建UIScrollView与已知的界限

_pagingScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,320,387]; 

UIScreen界限

减去的TabBar或的NavBar高度