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 版权协议,转载请附上原文出处链接和本声明