最近接了个大活,开发ios,可以说是从零开始,不过因为工期比较紧,我也是自学了半个月就开始上手了(双手颤颤巍巍),今天就遇到了个问题,ios系统自带的导航栏的高度是固定的,但是客户的需求中导航栏比较高(我请教了一些ios开发的大佬,都说ios的导航栏无法修改,需要把系统导航栏隐藏掉,自己画一个贴上去)所以需要自定义一下,搞起来~
因为时间比较紧,我看swift语言开发ios比OC开发要简单一些,所以我学的swift,后续的学习心得和开发踩坑相关的博客都会以swift语言呈现!
在需要自定义导航栏的页面定义方法
var navBar: UINavigationBar = UINavigationBar()
func setNavBarToTheView () {
//隐藏系统导航栏
self.navigationController?.isNavigationBarHidden = true
//自定义导航栏大小
//UIScreen.main.bounds.width:代表设备的屏幕宽度
self.navBar.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 100)
//设置导航栏颜色
self.navBar.barTintColor = UIColor(r: 31, g: 45, b: 76)
self.view.addSubview(navBar)
}
然后需要在viewDidAppear方法里调用这个方法才会生效,不要在viewDidLoad方法里调用,否则页面无变化
override func viewDidAppear(_ animated: Bool) {
//设置navigationbar高度
self.setNavBarToTheView()
}
修改前:
修改后:
效果出来了,我也是现学现卖,有不对的地方请相关大佬轻喷~