iOS技巧:移除/添加导航栏黑边(iOS13适配)

“我正在参加《掘金·帆船计划》”

介绍

背景:移除导航栏下方的黑色边框在iOS15中不起作用
原因:必须使用iOS13之后的API UINavigationBar外观 设置生效

 UIKIT_EXTERN API_AVAILABLE(ios(13.0), tvos(13.0)) NS_SWIFT_UI_ACTOR  
 @interface UINavigationBarAppearance : UIBarAppearance  
 复制代码

I 导航栏黑边设置

1.1 去除导航栏底部黑边(iOS15适配)

iOS15之前: [self.navigationBar setShadowImage:[[UIImage alloc] init]];

 [vc.navigationController.navigationBar setBackgroundImage:[ImageTools createImageWithColor:[UIColor whiteColor]] forBarMetrics:UIBarMetricsDefault];  
  
 复制代码

iOS15之后

 if(@available(iOS 13.0, *)) {  
 UINavigationBarAppearance *appearance = [[ UINavigationBarAppearance alloc] init];  
          
 //透明后去掉导航栏底部的黑色边框  
 外观.shadowImage =[[ UIImage alloc] init];  
          
 外观.shadowColor= UIColor.clearColor;  
  
  
          
 navigationBar.standardAppearance = 外观;  
          
 navigationBar.scrollEdgeAppearance = 外观;  
          
 }  
  
  
  
 复制代码

1.2 设置导航栏下黑边(iOS13适配)

 // 设置导航栏底部的黑色边框  
 + ( void)setupnavigationBar:( UIViewController*)vc{  
      
      
      
 if (@available(iOS 13.0, *)) {  
          
 UINavigationBar *navigationBar = vc.navigationController.navigationBar;  
  
 UINavigationBarAppearance *appearance =navigationBar.standardAppearance;  
          
      
 外观.shadowImage =[ UIImage createImageWithColor:k_tableView_Line];  
  
 外观.shadowColor=k_tableView_Line;  
          
  
 navigationBar.standardAppearance = 外观;  
 navigationBar.scrollEdgeAppearance = 外观;  
  
 } 别的 {  
 // 回退到早期版本  
          
 UINavigationBar *navigationBar = vc.navigationController.navigationBar;  
 [navigationBar setBackgroundImage:[[UIImage alloc] init] forBarPosition: UIBarPositionAny barMetrics: UIBarMetricsDefault]; // 这里将底线颜色设为红色  
 // [navigationBar setShadowImage:[UIImage createImageWithColor:[UIColor redColor]]];  
          
 [navigationBar setShadowImage:[UIImage createImageWithColor:k_tableView_Line]];  
          
 }  
  
  
      
 }  
  
  
  
 复制代码

二、去掉TabBar顶部的黑线

  • 设置阴影颜色

    • (void)setupshadowColor{

    UIView * tmpView = 自我;
    tmpView.layer.shadowColor = [ UIColor blackColor].CGColor; //设置阴影的颜色
    tmpView.layer.shadowOpacity = 0.08; // 设置阴影的透明度
    tmpView.layer.shadowOffset = CGSizeMake(kAdjustRatio(0), kAdjustRatio(-5)); //设置阴影的偏移量,阴影的大小,x向右,y向下为正
    tmpView.layer.shadowRadius = kAdjustRatio(5); //设置阴影的圆角,//阴影的扩散范围相当于模糊半径,也就是阴影的渐变距离。从外围开始,shadowRadius 距离逐渐向内淡化。

    //去掉TabBar顶部的黑线
    [自我setBackgroundImage:[UIImage createImageWithColor:[UIColor clearColor]]];
    [自我setShadowImage:[UIImage createImageWithColor:[UIColor clearColor]]];

    }

    复制代码

也可以看看

iOS技巧:自定义导航栏,设置全局导航栏的外观。 (iOS15适配)
blog.csdn.net/z929118967/...

版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议。转载请附上原文出处链接和本声明。

这篇文章的链接: https://homecpp.art/1523/10345/1040

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/38872/52432312

posted @ 2022-09-23 12:54  哈哈哈来了啊啊啊  阅读(720)  评论(0编辑  收藏  举报