网上有很多关于隐藏的方法,设置后能够成功,但是跳转到其他界面的时候发现,其他界面横线也被隐藏了。

目前主流的方法是将shadowImage用一张空的图片图片替换掉
可是这种方法不能解决navigationController里面的某个界面隐藏,其他不变的问题。
[self.navigationController.navigationBar setBackgroundImage:[[UIImage alloc] init] forBarMetrics:UIBarMetricsDefault]; self.navigationController.navigationBar.shadowImage = [[UIImage alloc] init];
通过xcode查看UINavigationBar的树形结构发现,可以很清楚的看出横线就是下面的_UIBarBackground下面的UIImageView对象
树形结构如下
**UINavigationBar** **--[ 1] _UIBarBackground** **----[ 2] UIImageView** **----[ 2] UIVisualEffectView** **------[ 3] _UIVisualEffectBackdropView** **------[ 3] _UIVisualEffectFilterView** **--[ 1] UINavigationButton** **----[ 2] UIButtonLabel** **--[ 1] _UINavigationBarBackIndicatorView**
所以能不能遍历UINavigationBar的所有子view然后找到横线对应的UIImageView对象,隐藏掉呢?
遍历UINavigationBar所有的子view获取子view的数组。
NSArray *allSubviews(UIView *aView) {
NSArray *results = [aView subviews];
for (UIView *eachView in aView.subviews)
{
NSArray *subviews = allSubviews(eachView);
if (subviews)
results = [results arrayByAddingObjectsFromArray:subviews];
}
return results;
}
遍历数组找到横线对应的UIImageView对象
@property (nonatomic, strong) UIImageView *shadowImage;
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
NSArray *subViews = allSubviews(self.navigationController.navigationBar);
for (UIView *view in subViews) {
if ([view isKindOfClass:[UIImageView class]] && view.bounds.size.height<1){
//实践后发现系统的横线高度为0.333
self.shadowImage = (UIImageView *)view;
}
}
self.shadowImage.hidden = YES;
}
最后在viewDidDisappear方法里面还原显示状态。
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
self.shadowImage.hidden = NO;
}
运行后发现完美解决
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# ios
# 导航栏去掉线
# ios去掉导航栏的线
# 导航栏底部横线
# iOS 封装导航栏及返回
# 获取控件所在控制器的实例
# 简单好用的iOS导航栏封装.runtime属性控制实例代码
# 关于iOS导航栏返回按钮问题的解决方法
# iOS实现顶部标签式导航栏及下拉分类菜单
# IOS仿今日头条滑动导航栏
# 详解iOS11关于导航栏问题
# iOS应用开发中导航栏按钮UIBarButtonItem的添加教程
# iOS定制UISearchBar导航栏同步iOS11的方法
# iOS界面跳转时导航栏和tabBar的隐藏与显示功能
# iOS导航栏控制的一些总结
# 遍历
# 有很多
# 很清楚
# 大家多多
# 跳转到
# 这种方法
# 网上
# UINavigationBar
# viewDidDisappear
# xcode
# init
# forBarMetrics
# UIBarMetricsDefault
# _UIBarBackground
# _UIVisualEffectBackdropView
# _UIVisualEffectFilterView
# UINavigationButton
# UIImageView
# plain
# UIVisualEffectView
相关文章:
建站之星如何防范黑客攻击与数据泄露?
音响网站制作视频教程,隆霸音响官方网站?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
在线教育网站制作平台,山西立德教育官网?
Android使用GridView实现日历的简单功能
小程序网站制作需要准备什么资料,如何制作小程序?
Java解压缩zip - 解压缩多个文件或文件夹实例
想学网站制作怎么学,建立一个网站要花费多少?
如何在IIS中新建站点并配置端口与物理路径?
网站设计制作企业有哪些,抖音官网主页怎么设置?
PHP 500报错的快速解决方法
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
,巨量百应是干嘛的?
如何快速选择适合个人网站的云服务器配置?
如何在万网ECS上快速搭建专属网站?
建站为何优先选择香港服务器?
手机网站制作与建设方案,手机网站如何建设?
建站之星2.7模板快速切换与批量管理功能操作指南
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
如何通过网站建站时间优化SEO与用户体验?
如何通过西部建站助手安装IIS服务器?
定制建站流程解析:需求评估与SEO优化功能开发指南
免费网站制作appp,免费制作app哪个平台好?
如何快速重置建站主机并恢复默认配置?
全景视频制作网站有哪些,全景图怎么做成网页?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
专业网站建设制作报价,网页设计制作要考什么证?
潮流网站制作头像软件下载,适合母子的网名有哪些?
制作网站的公司有哪些,做一个公司网站要多少钱?
微信h5制作网站有哪些,免费微信H5页面制作工具?
Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解
官网网站制作腾讯审核要多久,联想路由器newifi官网
定制建站如何定义?其核心优势是什么?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
制作表格网站有哪些,线上表格怎么弄?
如何在Golang中使用replace替换模块_指定本地或远程路径
深圳网站制作培训,深圳哪些招聘网站比较好?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何零基础在云服务器搭建WordPress站点?
如何快速上传建站程序避免常见错误?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
浅谈Javascript中的Label语句
网站制作话术技巧,网站推广做的好怎么话术?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
c# 服务器GC和工作站GC的区别和设置
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
广州营销型建站服务商推荐:技术优势与SEO优化解析
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
*请认真填写需求信息,我们会在24小时内与您取得联系。