解决透明NavigationBar底部出现莫名其妙横线问题
来源:互联网 发布:连接视频的软件 编辑:程序博客网 时间:2024/04/29 07:00
有一个页面要实现透明NavigationBar,实现了之后发现一个奇怪的问题:第一次进入此页面显示透明NavigationBar正常,返回上一级页面再重新进入,NavigationBar的底部出现了一条大约1px的横线,怎么都消除不了。
用Reveal查了一下这个横线,是一个UIImageView,0.5px高度,第一次正常显示的时候center y坐标为63.75,所以显示正常;返回上一级页面时再重新进入,center y坐标为64.25,正好出现在NavigationBar的下面而没有被它覆盖。
猜测是因为要实现透明NavigationBar在其中加了一个64px高度的OverLay View影响了这条横线的位置。最后在这篇文章中找到了解决方法:
First – declare instance variable:
@implementation MyViewController { UIImageView *navBarHairlineImageView;}
Then, in viewDidLoad
do:
navBarHairlineImageView = [self findHairlineImageViewUnder:navigationBar];
Method which finds the image view we need:
- (UIImageView *)findHairlineImageViewUnder:(UIView *)view { if ([view isKindOfClass:UIImageView.class] && view.bounds.size.height <= 1.0) { return (UIImageView *)view; } for (UIView *subview in view.subviews) { UIImageView *imageView = [self findHairlineImageViewUnder:subview]; if (imageView) { return imageView; } } return nil;}
And this will do the rest of magic:
- (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; navBarHairlineImageView.hidden = YES;}- (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; navBarHairlineImageView.hidden = NO;}
Same method should also work for UISearchBar
hairline.
另一种隐藏横线的方法:
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init]
forBarPosition:UIBarPositionAny
barMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
参考:
http://stackoverflow.com/questions/19226965/how-to-hide-ios7-uinavigationbar-1px-bottom-line/19227158#19227158
https://github.com/samwize/UINavigationBar-Addition/blob/master/Library/UINavigationBar%2BAddition.m
http://jslim.net/blog/2014/02/28/remove-the-1px-shadow-from-uinavigationbar/
- 解决透明NavigationBar底部出现莫名其妙横线问题
- 解决透明NavigationBar底部出现莫名其妙横线问题
- NavigationBar底部有条横线怎么办
- 隐藏导航栏底部横线 隐藏navigationBar底部的线
- navigationBar 透明
- navigationBar 透明
- 解决navigationbar颜色不纯问题
- 如何解决用"adobe pdf"打印Djvu文件出现横线或横条的问题
- 莫名其妙的解决了一个莫名其妙的问题
- J2EE连接oracle莫名其妙出现问题
- navigationbar设置为透明 上面items不透明展示解决思路
- 去掉Nav 底部横线
- 莫名其妙的解决了MagicDraw中文问题
- 解决 Eclipse 莫名其妙突然关闭的问题
- OpenVPN莫名其妙断线的问题及其解决
- JasperReport:几个莫名其妙的问题的解决
- 去掉NavigationBar底部黑线
- 隐藏Navigationbar底部线条
- windows 操作系统镜像下载
- 2015年大二上-数据结构-查找-2-(1)-HashTable
- SIMD学习笔记整理(索引贴)
- 阿里巴巴实习内推二面经验总结(客户端开发岗)
- c++ 组合模式
- 解决透明NavigationBar底部出现莫名其妙横线问题
- java面向对象之向上转型和向下转型
- SIMD(MMX/SSE/AVX)变量命名规范心得
- ACE日志系统
- iOS 怎样通过UDP发送广播寻找设备,拿到ip地址,然后用TCP 连接设备
- 在aix环境中用java实现自动发邮件告警
- C++之tinyXML的使用详解
- Codeforces-Gadget Hackwrench-LCA最近公共祖先
- TiXmlHandle的使用-简化tinyxml的代码