2012-09-14 95 views
3

我需要在用戶向下滾動時隱藏導航欄。目前,我打電話給setNavigationBarHidden: YES animated:YES,但這種解決方案並不理想,因爲它會在動畫被調用時立即跳出主視圖。Instagram風格導航欄隱藏

Instagram應用程序有一個更好的解決方案 - 導航欄鎖定在主視圖的頂部,並隨着用戶的滾動而向上滾動。向下滾動幾個像素,只有導航欄的一部分被隱藏。

關於如何完成這個任何想法?

回答

0

我不認爲他們正在使用導航欄。我認爲這是UITableView的自定義標題視圖,或者至少這是我會做,因爲你可以把任何UIView在那裏。

您可以使用UITableView委託來設置這些標頭。

+0

如果它是一個標題視圖,當它出現時滾動條不會覆蓋它嗎?在Instagram中,當滾動條出現時,它會出現在其導航欄下方 - 表明它是一個實際的導航欄。除非有辦法讓滾動條只出現在某些子視圖中? – bmueller

+0

@bmueller它絕對不是表頭,因爲刷新控制出現在它=)我找到了他們這樣做的方式 - 閱讀我的答案[這個問題](http://stackoverflow.com/questions/20273289/instagram- like-navigation-bar-ios-7) –

0

導航欄不提供此功能。最好的方法是使用自定義視圖(您的自定義導航欄)作爲主視圖的子視圖,然後使用類似[UIView animateWithDuration ....]和翻譯功能的函數,使用類似CATransform3DTranslate

+1

與@Jorsh相同的問題 - 如果我要使用自定義視圖,滾動條不會出現在自定義視圖之上嗎?有沒有辦法讓滾動條只出現在某些子視圖中? – bmueller

0

我已經找到完全相同的方式Instagram的做到了 - 看看my answer here 無鍋手勢識別,設置欄隱藏,完全不像,只是裏面scrollViewDidScroll一些很酷的工程表視圖的委託方法