2016-10-28 40 views
1

我有一個表視圖作爲常規UIViewController的第一個孩子。我試過在我的視圖和表格視圖中添加導航控制器的手勢識別器,但沒有骰子。在下面的代碼片段中,blah:永遠不會被調用。UIViewController中的表視圖不會獲得hidesBarsOnSwipe功能

[self.navigationController setHidesBarsOnSwipe:YES]; 
[self.tableView addGestureRecognizer:self.navigationController.barHideOnSwipeGestureRecognizer]; 
[self.navigationController.barHideOnSwipeGestureRecognizer addTarget:self action:@selector(blah:)]; 

我覺得像barHideOnSwipeGestureRecognizer是進軍沒有使用頂級滾動視圖控制器(集合或表)時,這個漂亮的功能的方式,但我想不出到底如何。

+0

當你滾動tableview時,你想隱藏導航欄嗎?對 ? – Lion

+0

是的,正好@Lion--問題是,除非表視圖被精確地固定到頂層視圖的尺寸,否則它不起作用。 – bdalziel

回答

1

如果你想隱藏刷卡navigationbar,當你在向上的方向滾動鼠標tableview意義(去下),然後

self.navigationController.hidesBarsOnSwipe = YES; 

就足以實現這一目標。它會隱藏navigationbar並在tap上再次顯示。確保你已經設置了適當的限制tableview。您的約束條件應爲top,bottom,leading and trailing,常數爲0nearest neighbor

+0

聽起來很瘋狂,但它的工作原理。我在桌面視圖上方有一個視圖,所以這些約束不是直接指向頂部和底部佈局指南。不幸的是,雖然它隱藏起來,但它仍然不會再出現。我要挖更多,但感謝您的幫助 – bdalziel

+0

這個答案修復了永不再現的部分隱藏:http://stackoverflow.com/a/28899115/822164 – bdalziel

+0

是的,因爲我已經說過這取決於你的約束! – Lion

相關問題