2013-05-21 80 views
13

我該如何實現這種效果?UITableView滾動時隱藏工具欄元素(類似於Facebook的應用程序?)

full top view http://i39.tinypic.com/f0vx4l.pnghalf top view http://i40.tinypic.com/2w7486r.png top view almost hidden http://i42.tinypic.com/k95r9.png

+0

屏幕截圖的哪一部分顯示了你想要的效果?是狀態,照片等? –

+0

哦,你需要使用scrollview委託方法來做到這一點。它只是一個位於表視圖之上的UIView。 – Fogmeister

回答

18

這不是立即從你的截圖明顯的,但我相信你想要的那個標題欄向上滑動當用戶滾動,右邊? (我會建議在該部分澄清)

您可以通過幾種方法來實現這一點,並且在所有這些方法中,您都必須實現自己的滾動邏輯,這意味着標題工具欄向上滑動多少取決於您擁有的位置滾動。這就是說,如何做到這一點:

。如果您使用的是UITableView,我假設您已將您的視圖控制器設置爲其delegate。由於UITableView已經是UIScrollView的子類,只需將UIScrollViewDelegate添加到您的視圖控制器。這會給我們滾動事件發生。你會想要在scrollViewDidScroll:中做你的邏輯。

2.。如果您只是使用UIScrollView,只需將您的視圖控制器設置爲其代理,然後執行UIScrollViewDelegate,然後在scrollViewDidScroll:中執行您的邏輯。

這就是說,你的代碼可能是這個樣子:

- (void) scrollViewDidScroll:(UIScrollView *)scrollView { 
    CGPoint scrollPos = scrollView.contentOffset; 

    if(scrollPos.y >= 40 /* or CGRectGetHeight(yourToolbar.frame) */){ 
     // Fully hide your toolbar 
    } else { 
     // Slide it up incrementally, etc. 
    } 
} 

無論如何,希望我幫助。

5

如果你已經設定了正確的委託,你的表將調用scrollViewDidScroll:滾動時。在您的控制器

所以,你可以添加類似:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.contentOffset.y >0) //means that the user began to scroll down the table 
    { 
     [UIView animateWithDuration:0.4 animations:^{ 
      //animations you want to perform 
     }]; 
    } 
} 
1

這裏我實現了當tableview滾動時UIView Hide/Show的代碼。當tableview向下滾動時,UIView是隱藏的,當向上滾動時,UIView顯示。我希望它適合你...!

第1步: - 讓一個屬性在.h文件中

@property (nonatomic) CGFloat previousContentOffset; 

第2步: - 寫下scrollViewDidScroll方法的代碼。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView { 

CGFloat currentContentOffset = scrollView.contentOffset.y; 

if (currentContentOffset > self.previousContentOffset) { 
    // scrolling towards the bottom 
    [self.subButtonView setHidden:YES]; 
} else if (currentContentOffset < self.previousContentOffset) { 
    // scrolling towards the top 
    [self.subButtonView setHidden:NO]; 
} 
self.previousContentOffset = currentContentOffset; 
} 
相關問題