可以将约束分配给手动添加到视图的 UINavigationBar 。
但是当 UINavigationBar 添加到视图中并且视图嵌入到导航控制器中时,我无法向其添加约束。
我的目标是增加 UINavigationBar
的高度答案 0 :(得分:2)
UINavigationBar 不允许为自己分配约束。高度可以更改的唯一简单方法是在提示属性中添加空格。
要增加 UINavigationBar 的高度,有两个步骤:
注意:该特定导航控制器下的所有视图都将具有新的高度
代码段:
class ModifiedNavBar: UINavigationBar {
override func sizeThatFits(size: CGSize) -> CGSize {
let screenWidth = UIScreen.mainScreen().bounds.width
let newSize:CGSize = CGSizeMake(screenWidth, 60)
return newSize
}
}
注意:上述步骤会增加 NavBar 的高度,但它不会为您提供完整的自定义选项。添加视图可让您完全控制视图。
代码段:
class ViewController: UIViewController {
/*** UINavigationItem Outlet ***/
@IBOutlet weak var navbar: UINavigationItem!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
super.viewDidLoad()
let view = UIView(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, 90))
let label = UILabel(frame: CGRectMake(0, 0, UIScreen.mainScreen().bounds.width, 20))
let label2 = UILabel(frame: CGRectMake(0, 20, UIScreen.mainScreen().bounds.width, 20))
/*** First Label ***/
label.text = "Hello"
label.textAlignment = NSTextAlignment.Left
view.addSubview(label)
/***Second Label ***/
label2.text = "Hello2"
label2.textAlignment = NSTextAlignment.Left
view.addSubview(label2)
self.navbar.titleView = view
}
注意:如果提示添加到任何 UINavigationItem 对象, NavBar 的大小将会增加