iOS 动态改变UINavigationController的颜色和透明度

动态改变导航栏的颜色和透明度

有一些应用在我们推拉滑动列表的时候会发现导航栏随着滑动的动作改变颜色和透明度。
这种效果其实实现起来是比较简单的。
这里利用的是 UIScrollview 的代理。每当 UIScrollView 滑动的时候就会掉用- (void)scrollViewDidScroll:(UIScrollView *)scrollView这个方法。我们只要在这个代理里面获取到 UIScrollView 的偏移量,根据偏移量来设置导航栏的颜色和透明度。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    //先获取y轴偏移
    CGFloat yOffset  = scrollView.contentOffset.y;

    //设置透明度
    CGFloat alpha = fabs(yOffset)/88.f;

    //设置导航栏的图片
    [self.navigationController.navigationBar setBackgroundImage:[self imageWithColor:[[UIColor orangeColor]colorWithAlphaComponent:alpha]] forBarMetrics:UIBarMetricsDefault];
}

你可能感兴趣的:(iOS基础知识,ios,导航)