[已解决]swift在app初始化时候获得tabBar的边框(宽度和高度)

需要实现:
在初始化VC之前,获得导航栏的边框尺寸(高度)
即,在:

        let mainViewVC = MainViewController()
        let mainNaviVC = UINavigationController(rootViewController:mainViewVC)

之前,就获得导航栏高度。

搜:
swift get navigation bar frame
参考:
自己当前的第一次调用时的VC:
MainViewController
中的:
self.navigationController
是nil
-》所以没发去通过self.navigationController去获得对应的
self.navigationController?.navigationBar.frame
搜:
swift navigation bar height
参考:
在初始化VC之前,UINavigationBar的frame都是0:
        print("UINavigationBar().frame=\(UINavigationBar().frame)") //UINavigationBar().frame=(0.0, 0.0, 0.0, 0.0)
       print("UINavigationBar.appearance().frame=\(UINavigationBar.appearance().frame)") //UINavigationBar.appearance().frame=(0.0, 0.0, 0.0, 0.0)

没法使用。

最后是,没有解决此处问题:
无奈只能:
在初始化VC后,该VC加入了导航栏,然后才能获得导航栏的边框(高度):
        //init main view controller
        let mainViewVC = MainViewController()
        let mainNaviVC = UINavigationController(rootViewController:mainViewVC)

        print("mainNaviVC.navigationBar.frame=\(mainNaviVC.navigationBar.frame)") //mainNaviVC.navigationBar.frame=(0.0, 0.0, 375.0, 44.0)

后来继续折腾:

搜:

swift get tabbar height

参考:

最后可以了:
此处,已经确保
self.tabBarController
是有值的:
print("self.tabBarController=\(self.tabBarController)") //self.tabBarController=Optional(<JianDao.MainViewController: 0x7f98a301ce00>)
然后就可以通过tabBar去获得frame了:
        print("self.tabBarController?.tabBar.frame=\(self.tabBarController?.tabBar.frame)") //self.tabBarController?.tabBar.frame=Optional((0.0, 618.0, 375.0, 49.0))


发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量