我正在以编程方式执行所有操作,并且没有故事板。我正在使用Swift2.0而且我是初学者。我的app结构非常简单:
在我的AppDelegate中,我正在初始化一个UINavigationController
和一个ViewController,并将我的ViewController添加到我的navigationController中。
在我的ViewController,loadView()
方法中,我初始化了我的视图:self.view = myView()
所以现在我在myView类中,我正在尝试构建我的视图(制作4个按钮,添加约束)。现在当我想制作我的按钮时,我需要知道navigationController的navigationBar尺寸(高度)。
如何从我的View类访问它?做这个的最好方式是什么?
谢谢。
如果您想要顶部条的精确高度(导航栏+状态栏),请尝试此操作:
Objective-C的
CGFloat topbarHeight = ([UIApplication sharedApplication].statusBarFrame.size.height +
(self.navigationController.navigationBar.frame.size.height ?: 0.0));
斯威夫特4
let topBarHeight = UIApplication.shared.statusBarFrame.size.height +
(self.navigationController?.navigationBar.frame.height ?? 0.0)
为方便起见,请尝试使用此UIViewController扩展
extension UIViewController {
/**
* Height of status bar + navigation bar (if navigation bar exist)
*/
var topbarHeight: CGFloat {
return UIApplication.shared.statusBarFrame.size.height +
(self.navigationController?.navigationBar.frame.height ?? 0.0)
}
}
斯威夫特3
let topBarHeight = UIApplication.sharedApplication().statusBarFrame.size.height +
(self.navigationController?.navigationBar.frame.height ?? 0.0)