关于iOS导航栏透明度的问题

一直以来都没有特别细致的去处理导航栏问题,今天有个小需求,导航栏一开始透明,随着scrollView滚动而变为变色,本来想着这就是一个很简单的问题,无非是:

//设置导航栏背景图片为一个空的image,这样就透明了

        UIImage*image = [[UIImagealloc]init];

        [self.navigationController.navigationBar setBackgroundImage:image

                                                      forBarMetrics:UIBarMetricsDefault];

        //去掉透明后导航栏下边的黑边

        [self.navigationController.navigationBar setShadowImage:[[UIImage alloc] init]];

这么简单的代码,但是实际这么做了却发现导航栏变成了很色。

于是开始思考,只要不是通过创建一个图片对象来做导航栏透明色,而用barTintColor变成别的颜色都是正常的,难道是因为导航栏透明度问题?于是乎加了这句代码:

self.navigationController.navigationBar.translucent = YES;

就解决了。

如果是透明的导航栏图片,那么导航栏本身也得是可透明的。

你可能感兴趣的:(关于iOS导航栏透明度的问题)