我以编程方式完成所有操作,并且没有故事板。我使用的是Swift2.0,而且我是初学者。我的应用程序结构非常简单:
在我的AppDelegate中,我正在初始化UINavigationController
和一个ViewController,并将我的ViewController添加到我的navigationController。
在我的ViewController loadView()
方法中,我初始化了我的观点:self.view = myView()
所以现在我在myView类中,我正在尝试构建我的视图(制作4个按钮,添加约束)。现在当我想制作我的按钮时,我需要知道navigationController的navigationBar尺寸(高度)。
如何从View类访问它?这样做的最佳方式是什么?
谢谢。
答案 0 :(得分:0)
如果您想要顶栏的精确高度(导航栏+状态栏),请尝试此操作:
<强>目标C 强>
CGFloat topbarHeight = ([UIApplication sharedApplication].statusBarFrame.size.height +
(self.navigationController.navigationBar.frame.size.height ?: 0.0));
Swift 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)
}
}
Swift 3
let topBarHeight = UIApplication.sharedApplication().statusBarFrame.size.height +
(self.navigationController?.navigationBar.frame.height ?? 0.0)