只有返回按钮和透明背景的导航
Posted
技术标签:
【中文标题】只有返回按钮和透明背景的导航【英文标题】:Navigation with only Back Button and transparent background 【发布时间】:2016-02-11 06:03:30 【问题描述】:我曾尝试实现嵌入在我的视图控制器中的导航控制器。它按预期工作。
但我的要求略有不同,它只需要一个后退按钮,并且在所有屏幕中都有一个带有徽标图像背景的顶部横幅。因此,如果我尝试实现后退按钮,它会占用覆盖徽标/顶部横幅的导航栏的空间。
有什么办法可以克服这种情况。
【问题讨论】:
【参考方案1】:这似乎很容易,我的应用程序中也使用了以下代码:-
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.translucent = true
self.navigationController?.view.backgroundColor = UIColor.clearColor()
编辑:-
要删除后退按钮文本:-
navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)
Swift 3.0
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.shadowImage = UIImage()
self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.view.backgroundColor = UIColor.clear
【讨论】:
感谢 Vizlix。我对ios环境很陌生。我应该在哪里尝试此代码? 在根视图控制器的 viewdidload() 中写入。 它有效。 :) 任何想法如何从按钮中删除后退文本,因为只需要显示图标【参考方案2】:我不知道有没有其他选择。但过去我和你有同样的情况。
我已经使用 UIView 创建了自定义 .XIB。并将子视图添加为导航栏。
所以,在我看来,最好的选择是使用 UINavigation 栏的高度创建自定义 .XIB。并添加为子视图。
这是实现它的步骤。
1) 取.h文件、.m文件和UIView的Xib文件,大小为width 46和身高44
2) 根据您的设计设置约束和布局。
3) 在 .h 文件中为返回按钮提供出口。
4) 在 customview.h 文件中创建一个委托。在 .m 文件中设置方法。
5) 然后在您的 viewcontroller.h 文件中导入 customview.h 文件。同样不要忘记在视图控制器接口中定义委托。
6) 现在在 Viewdidload 方法中添加 customheaderview 作为子视图。
#define macro_name (Define in constantfile as macro if you don't want to write whole code again and again)
NavigationHeaderview *customView = [NavigationHeaderview CustomNavigation:self.navigationController.navigationBar.frame.origin.x y:self.navigationController.navigationBar.frame.origin.y width:self.navigationController.navigationBar.frame.size.width height:self.navigationController.navigationBar.frame.size.height];
customView.delegate=self;
[self.navigationController.view addSubview:customView];
7) 使用 headerview 的委托方法在所有视图控制器中访问它。
现在您可以像在 UIView 中一样在导航栏中执行任何操作。
注意:- 我知道这是一个乏味的过程。但是当您需要导航栏中的 3 或 4 个按钮并在其上设置 Action 时,这是值得的。或者导航栏中的整个项目需要相同的设计布局..
【讨论】:
感谢巴达尔为我解释事情 欢迎。乐于助人。以上是关于只有返回按钮和透明背景的导航的主要内容,如果未能解决你的问题,请参考以下文章
Chrome Mobile,更改系统导航栏(返回、主页、最近按钮)背景颜色?