2012-08-15 60 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高度