当第一个单元格离开屏幕时淡出iPhone导航栏

时间:2014-10-04 03:02:20

标签: ios objective-c iphone uitableview uinavigationbar

我希望有一个像导航栏开始清晰的foursquare场所页面的效果,然后当表格中的顶部单元格滚出视图时变得不透明。 Twitter应用程序在配置文件选项卡中具有类似的效果。

这将如何实现?有没有办法知道一个单元格何时离开视图(与tableView:willDisplayCell:forRowAtIndexPath:相反)或者我应该检查表格的滚动位置并在滚动位置达到某个值时进行更改?

由于

1 个答案:

答案 0 :(得分:0)

尝试此代码,声明一个名为lastOffset的类型为CGFloat的ivar。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGFloat distance = lastOffset - scrollView.contentOffset.y;
    lastOffset = scrollView.contentOffset.y;

    CGFloat barHeight = self.navigationController.navigationBar.frame.size.height;
    if (lastOffset > - barHeight) {
        [UIView animateWithDuration:0.2 animations:^{
            self.navigationController.navigationBar.frame = CGRectOffset(self.navigationController.navigationBar.frame, 0.0f, distance);
        }];
    }
}