导航栏向上滚动

#pragma mark - ScrollowDelegate

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

    double contentOffY = scrollView.contentOffset.y;

    if (contentOffY >=0) {

        [self setFrontPageNavBarAndStateHide:contentOffY/64];

    }else {

        [self setFrontPageNavBarAndStateHide:0];

    }

}

-(void)setFrontPageNavBarAndStateHide:(CGFloat)progress{

    if (progress > 0) {

        self.navigationController.navigationBar.transform = CGAffineTransformTranslate(CGAffineTransformIdentity, 0, -(self.navigationController.navigationBar.bounds.size.height + 20)*progress);

    }else {

        self.navigationController.navigationBar.transform = CGAffineTransformTranslate(CGAffineTransformIdentity, 0, 0);

    }

}

对于tableview 或者 scrollview 我们明明设置他的坐标从(0,0)开始却发现他是从导航栏下面开始,这是iOS7以后的新特性,可以重写

- (void)viewDidLayoutSubviews {

    [super viewDidLayoutSubviews];

    self.view.frame = CGRectMake(0, 0, kScreenWidth, kScreenHeight);

}

原文地址:https://www.cnblogs.com/SensenCoder/p/5804817.html