我只是指出,如果我把一個UIScrollView作爲一個UIViewController的根視圖:的UIScrollView和UINavigationController的相互作用
- (void)loadView
{
self.view = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
}
我得到了很多的行爲自由:滾動視圖設置它的contentInset
和scrollIndicatorInsets
自動若狀態欄,導航欄或工具欄存在透亮,並更新屬性,如果任何導航佈局更改:
[self.navigationController setNavigationBarHidden:YES animated:YES];
不幸的是滾動視圖也改變了它的contentOffset
AUTOMA當更改contentsInset
時,如果導航欄消失,內容會在導航欄出現時消失。
我喜歡很多這種自由行爲,但是我希望我的內容在導航欄進出時保持不動,而且我無法找到要在哪裏避免contentOffset
中的更改。
編輯:
一些堆棧跟蹤後,我發現了一個正被調用每一個偏移量自動調整時間的方法:[UIScrollView(Static) _adjustContentOffsetIfNecessary]
;但由於我找不到關於此方法的任何文檔,所以我不知所措。
我都與滾動視圖作爲根的viewController視圖的子視圖手動工作的功能;在顯示和隱藏導航欄時,我會手動設置'contentsInset',並且我不會更改'contentOffset',因爲我希望我的內容保持原樣。我想知道的是,如果我可以使用scrollView作爲根視圖的自動功能,並且仍然使我的內容保持原狀。 – Yamanqui
我不認爲這是可能的...我唯一能想到的其他事情是如果你想要文檔移動,就可以繼承UIScrollView並覆蓋'setContentOffset:'並只調用'[super setContentOffset:offset]'。順便說一下,所有以下劃線開頭的方法都是私有API,如果您對它們做任何事情,您的應用程序將不會被接受到App Store上。 – jjv360