NavigationBar 下面的横线是怎么来的? 如何去除?

本文介绍两种有效的方法来去除iOS应用中NavigationBar下方出现的横线。第一种方法是通过寻找宽度小于1px的视图并隐藏它;第二种方法则是通过设置navigationBar的背景图像和阴影图像为空来消除横线效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一(粗暴)

这篇通过寻找出width小于1xp的view的方式,找出此横线,并在ViewWillDidLoad 等方法里隐藏之

这里是具体方法以及Demo http://blog.youkuaiyun.com/iostiannan/article/details/51003124

方法二(2行代码)

这里,首先要知道,这调横线是怎么形成的,在导航栏和下面的VIew颜色相同时,突兀的有这样一天横线拦着 , 确实很影响美观!
那么,这天横线真的是一条横线吗?
其实,这是shadoImage 在作怪,这调横线,其实是NaVigationBar下产生的阴影效果,贴在一起就出现了横线的样式
因此,只要去掉阴影效果即可

//自定义一个NaVIgationBar
 [self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
 //消除阴影
    self.navigationController.navigationBar.shadowImage = [UIImage new];
要在Android Q中实现SystemUI的插件化开发,首先需要熟悉`OverlayPlugin`接口和其核心方法。在你的自定义插件类中,需要实现`onPluginConnected()`和`onPluginDisconnected()`方法,分别用于处理插件的加载和卸载逻辑。 参考资源链接:[AndroidQ SystemUI插件化实战:创建与应用](https://wenku.youkuaiyun.com/doc/6cuhxt07ou?spm=1055.2569.3001.10343) 其次,利用`Dependency.get(PluginManager.class)`获取PluginManager实例,并注册一个`PluginListener`,这样你可以在插件连接或断开时获得通知。同时,使用`mOverlays`来管理已连接的插件,确保每个插件的唯一性。 开发过程中,你将需要创建一个继承自`OverlayPlugin`的类,如`SampleOverlayPlugin`,并在其中覆盖`setup()`方法。在此方法中,你可以接收`statusBar`和`navigationBarView`的实例以及一个回调函数,通过这些参数实现对UI组件的自定义操作。例如,更改颜色、添加自定义通知或手势交互等。 为了确保插件与SystemUI正确交互并生效,你需要在`onPluginConnected()`方法中调用`setup()`方法。此外,不要忘记为你的插件添加版本控制注解`@Requires(target=OverlayPlugin.class, version=OverlayPlugin.VERSION)`,以确保与SystemUI的兼容性。 通过以上步骤,你可以定制和扩展Android Q的statusBar和navigationBar,提供给用户个性化的系统界面。更多详细信息和实例代码,可以参考《AndroidQ SystemUI插件化实战:创建与应用》文档,该文档深入讲解了Android Q SystemUI插件化开发的实战技巧和最佳实践。 参考资源链接:[AndroidQ SystemUI插件化实战:创建与应用](https://wenku.youkuaiyun.com/doc/6cuhxt07ou?spm=1055.2569.3001.10343)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值