美文网首页
iOS13及以下版本修改自定义Tabbar的分割线颜色等属性

iOS13及以下版本修改自定义Tabbar的分割线颜色等属性

作者: Comedy_G | 来源:发表于2020-02-14 23:30 被阅读0次

首先iOS13更新了新的类 UIBarAppearance 来设置系统或者自定义的Tabbar等控件的属性:拿 UITabbar来讲,新增了standardAppearance的属性,standardAppearance属于UITabBarAppearance类,UITabBarAppearance继承自UIBarAppearance。我们如果在iOS13系统环境下想要设置Tabbar的一些属性,比如分割线颜色,就需要用下面的方法来设置:

    

// 修改tabbar顶部分割线的颜色        

if (@available(iOS 13.0, *)) {        

UITabBarAppearance *appearance = [UITabBarAppearance new];   

appearance.shadowColor = kCOLOR_HEX(0xEFEFEF);        

appearance.backgroundColor = kCOLOR_HEX(0xFFFFFF);                 

NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];        

style.alignment = NSTextAlignmentCenter;                 

UITabBarItemStateAppearance *normalAppearance = appearance.stackedLayoutAppearance.normal;                 

// 修改文字到图片的距离        

normalAppearance.titlePositionAdjustment = UIOffsetMake(0, -15);               

  UITabBarItemStateAppearance *selectedAppearance = appearance.stackedLayoutAppearance.selected;                  selectedAppearance.titlePositionAdjustment = UIOffsetMake(0, -15);                 

self.tabBar.standardAppearance = appearance;    

} else {        

// Fallback on earlier versions  

  }    

if (@available(iOS 13.0, *)) {        

UITabBarAppearance *appearance = [UITabBarAppearance new];    

} else {         // Fallback on earlier versions    }

需要注意的是,iOS13只有使用appearance属性才能有效显示,使用之前的老方法就无法显示,所以为了更好的适配不同系统版本,还需要添加之前的方法:

  [self.tabBar setBackgroundImage:XXX];

  [self.tabBar setShadowImage:XXX];

文章的目的只是做个提醒,方法没写全~

相关文章

网友评论

      本文标题:iOS13及以下版本修改自定义Tabbar的分割线颜色等属性

      本文链接:https://www.haomeiwen.com/subject/ctusfhtx.html