我有以下代码:
func navbarbutton() {
UIView.animateWithDuration(0.2, animations: { () -> Void in
let current = self.navigationController?.navigationBar.frame
self.navigationController?.navigationBar.frame = CGRectMake(self.frame!.origin.x, self.frame!.origin.y, self.frame!.size.width, current!.size.height + 50)
self.navigationController?.navigationBar.layoutIfNeeded()
})
}
我可以将导航栏的高度增加50
dp。这对我来说不是问题。我遇到的问题UIBarButtonItems
是都与底部对齐。如何使它们与顶部对齐,以便自己添加更多内容?我根据图片得到一些东西:
是否可以使其与顶部对齐?
试试这个代码:
注意: 代码已在Swift 3中测试。
答案1: 更新的答案
class ViewController: UIViewController {
var customBar: UINavigationBar = UINavigationBar()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//Title
title = "Some Title"
// Add bar button item
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(addTapped))
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: self, action: #selector(addTapped))
self.customBar.frame = CGRect(x:0, y:0, width:view.frame.width, height:(navigationController?.navigationBar.frame.height)! + 50)
self.customBar.backgroundColor = UIColor.green
self.view.addSubview(customBar)
}
func addTapped() {
print("Button Pressed")
}
答案2:
override var isViewLoaded: Bool {
// Add bar button item
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(addTapped))
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: self, action: #selector(addTapped))
//Vertical and Horizonal barButtonItem position offset
navigationItem.leftBarButtonItem?.setTitlePositionAdjustment(UIOffset(horizontal: 0, vertical: 20), for: UIBarMetrics.default)
navigationItem.rightBarButtonItem?.setTitlePositionAdjustment(UIOffset(horizontal: 0, vertical: 20), for: UIBarMetrics.default)
return true
}
func addTapped() {
print("Button Pressed")
}
希望以上代码能解决您的问题。
问题内容: 显然,更改NavigationBar的高度在iOS 11 中面临着一种新方法。在以前的iOS版本中,可以通过 隐藏默认navigationBar并添加带有自定义框架的新控件来更改navigationBar的高度: 但似乎它无法在iOS 11 xCode beta中运行。无论新高度是多少,它始终保持在44。 有谁知道如何解决这个问题? 问题答案: 您的代码运行良好,没有错。如果更改 背景
Extends Widget The navigation bar is the onscreen area where Back, Home and similar buttons are displayed. The singleton instance can be accessed via ui.navigationBar and is only supported on Android.
实现可以上下滑动的导航条(UINavigationBar)。当这种导航条和列表结合在一起时,滚动列表时,会同时滚动导航条。向上滚动列表,导航条会向上滑动隐藏起来,从而起到一种滚动列表产生全屏的效果。向下滚动列表,导航条会滑动出现。具体请看gif效果图。 [Code4App.com]
我有一个包含文本区域的div。这个div有一个边框:1px纯黑。现在,当用户在textarea中键入时,textarea将增长。 我有这个密码- 现在外部div(外部到文本区域)也随之增长。但这种高度的变化并没有体现在边框上。边界留在那里。如果可能的话,我该如何实现呢? PS-当我在Chrome(Ctrl Shift I)中看到时,我的外部潜水高度会增加,但是边界没有反映这种变化。 HTML- C
给导航条的下方加上阴影,自定义导航条的背景图片。 [Code4App.com]
问题内容: 我有一个带有某些样式的简单html页面,但我不明白为什么会增加一些顶部边距? 来源如下: 如果我添加“ margin-top:0;” 到了空间已经消失了……但是直到我明白为什么我才感到不高兴。 问题答案: 上的空白来自浏览器添加到元素的默认样式。例如,如果您打开的并检查元素,您将看到这样的样式。该用户代理样式表是指浏览器默认样式。保证金变成16px为浏览器有一个默认。 由于浏览器之间的