最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

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

Swift crifan 4850浏览 0评论
需要实现:
在初始化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

参考:

iphone – Status bar height in swift – Stack Overflow
UITabbarController display issues when tabbar is visible · Issue #94 · jessesquires/JSQMessagesViewController · GitHub
最后可以了:
此处,已经确保
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))

转载请注明:在路上 » [已解决]swift在app初始化时候获得tabBar的边框(宽度和高度)

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
84 queries in 0.172 seconds, using 21.99MB memory