14

我怎样才能达到这个效果?

全顶视图 半顶视图 几乎隐藏的顶视图

4

5 回答 5

20

从您的屏幕截图中不会立即注意到这一点,但我相信您希望该标题工具栏在用户滚动时向上滑动,对吗?(我建议澄清那部分)

您可以通过几种方式做到这一点,并且在所有这些方式中,您都必须实现自己的滚动逻辑,这意味着标题工具栏向上滑动的程度取决于您滚动的位置。也就是说,这是如何做到的:

1 . 如果您正在使用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.
    }
}

无论如何,希望我有所帮助。

于 2013-05-21T12:56:45.917 回答
6

如果您已正确设置委托,您的表格将在滚动时调用 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
        }];
    }
}
于 2013-05-21T12:55:58.320 回答
5

在这里,我在 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; 
}
于 2016-11-22T13:46:43.460 回答
3

我为这个效果创建了一个简单的类: UIHidingView 是一个 iOS 类,它在 UITableView 顶部显示 UIView 元素,当 Table View 滚动时它会隐藏。

于 2013-07-20T13:11:35.950 回答
0

这将回答您的问题:

iPhone:默认隐藏 UITableView 搜索栏

相同的概念,不同的控制。您可以将 UIView 放在 tableview 的第一行或任何其他相关控件(例如按钮)上。

祝你好运。

于 2014-01-01T12:23:29.090 回答