实现导航栏全透明

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010069091/article/details/49641433
网上找了很久都没找的好的方法要么太简单不好用

 要么就是太复杂 太多了。 比如:

  self.navigationController.navigationBar.alpha = 0;

这个什么就都透明了  没什么用

2
   

[self.navigationController.navigationBarsetBackgroundImage:[UIImageimageNamed:@"[email protected]"]forBarMetrics:UIBarMetricsCompact];

self.navigationController.navigationBar.shadowImage =[UIImageimageNamed:@"top_01.png"];

这个虽然透明了还是会留下一条黑线

还有其他的 代码特别多就不写了


正确方法:

  

   [self.navigationController.navigationBarsetBackgroundImage:[selfimageWithColor:[UIColor clearColor]]

                       forBarPosition:UIBarPositionAny

                           barMetrics:UIBarMetricsDefault];

    [self.navigationController.navigationBarsetShadowImage:[UIImagenew]];

 

  

- (UIImage *)imageWithColor:(UIColor *)color

{

    // 描述矩形

    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);

    

    // 开启位图上下文

    UIGraphicsBeginImageContext(rect.size);

    // 获取位图上下文

    CGContextRef context =UIGraphicsGetCurrentContext();

    // 使用color演示填充上下文

    CGContextSetFillColorWithColor(context,[color CGColor]);

    // 渲染上下文

    CGContextFillRect(context, rect);

    // 从上下文中获取图片

    UIImage *theImage =UIGraphicsGetImageFromCurrentImageContext();

    // 结束上下文

    UIGraphicsEndImageContext();

    

    return theImage;

    

}



 

猜你喜欢

转载自blog.csdn.net/u010069091/article/details/49641433
今日推荐