有谁知道如何摆脱或改变这个讨厌的小酒吧的颜色吗?
在下面的情况下,我有 – 我说的这个1px高度线下面“根视图控制器”
解决方法 为此,您应该设置自定义阴影图像。但是对于要显示的阴影图像,您还需要设置自定义背景图片,引用从苹果的文档:For a custom shadow image to be shown,a custom background image must
also be set with the setBackgroundImage(_:for:) method. If the default
background image is used,then the default shadow image will be used
regardless of the value of this property.
所以代码是:
let navigationbar = navigationController!.navigationbarnavigationbar.setBackgroundImage(UIImage(named: "barBackground"),forbarMetrics: .Default)navigationbar.shadowImage = UIImage()
以上是唯一的“官方”的方式来隐藏它。不幸的是,它消除了酒吧的半透明。
我不想要背景图片,只是颜色
您有以下选项:
>创建用颜色填充的微小背景图片并使用它。
>将背景图像设置为UIImage(),然后将backgroundcolor设置为您喜欢的颜色。不幸的是,它使状态栏未填充在最新的iOS版本…
navigationbar.setBackgroundImage(UIImage(),forbarMetrics: .Default)navigationbar.backgroundcolor = UIcolor.redcolor()
>使用下面描述的’Hacky’方法。它也将保持栏半透明。
如何保持栏半透明?
要保持半透明,你需要另一种方法,它看起来像一个黑客,但工作良好。我们试图删除的阴影是一个细长的UIImageVIEw UINavigationbar下的地方。我们可以找到它,隐藏/显示它在需要时。
下面的说明假设你只需要在你的UINavigationController层次结构的一个控制器中隐藏发线。
>声明实例变量:
private var shadowImageVIEw: UIImageVIEw?
>添加方法找到这个阴影(发际)UIImageVIEw:
private func findShadowImage(under vIEw: UIVIEw) -> UIImageVIEw? { if vIEw is UIImageVIEw && vIEw.bounds.size.height <= 1 { return (vIEw as! UIImageVIEw) } for subvIEw in vIEw.subvIEws { if let imageVIEw = findShadowImage(under: subvIEw) { return imageVIEw } } return nil}
>添加/编辑vIEwWillAppear / vIEwWilldisappear方法:
overrIDe func vIEwWillAppear(_ animated: Bool) { super.vIEwWillAppear(animated) if shadowImageVIEw == nil { shadowImageVIEw = findShadowImage(under: navigationController!.navigationbar) } shadowImageVIEw?.hIDden = true}overrIDe func vIEwWilldisappear(_ animated: Bool) { super.vIEwWilldisappear(animated) shadowImageVIEw?.hIDden = false}
同样的方法也应该对UISearchbar发线有效,
和(几乎)任何你需要隐藏的东西;
非常感谢@Leo Natan的原创想法!
总结以上是内存溢出为你收集整理的如何隐藏iOS7 UINavigationBar 1px底线全部内容,希望文章能够帮你解决如何隐藏iOS7 UINavigationBar 1px底线所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)