Dar*_* D. 20 objective-c uitabbarcontroller uinavigationcontroller ios swift
我有一个ViewController(B),由一个PageViewController处理,它在另一个ViewController(A)中并打开它模态.我将ViewController(B)完全置于屏幕中间.这很好用.
但是当我从一个NavigationController推送ViewController(A)时,ViewController(B)的框架变大并且延伸到NavigationBar和TabBar下面.但我希望它在NavigationBar和TabBar之间居中.
我知道如何获得导航栏和tabbar的高度,以便我可以调整ViewController(B)的大小:
var topBar = self.navigationController?.navigationBar.frame.height
var bottomBar = self.tabBarController?.tabBar.frame.height
Run Code Online (Sandbox Code Playgroud)
但是这在ViewController(B)的vier层次结构中不起作用.self.navigationController和self.tabBarController都是nil.那么如何在视图层次结构中更深入地获取导航栏和标签栏的高度?或者我只需要将它从一个ViewController传递到另一个ViewController,直到我到达ViewController(B)?还是有另一种更明显的方式来集中视图?谢谢.
(我试图发布截图以便更好地理解,但我错过了发布图片所需的声望点,抱歉)
Ehs*_*dar 35
用这个 :
let height = UIApplication.sharedApplication().statusBarFrame.height +
self.navigationController!.navigationBar.frame.height
Run Code Online (Sandbox Code Playgroud)
这支持肖像和风景状态.
对于UITabBar,此代码工作:
self.tabBarController?.tabBar.frame.height
Run Code Online (Sandbox Code Playgroud)
小智 -20
导航栏高度状态栏高度和标签栏高度始终恒定:
您可以直接从视图高度中减去这些常量: self.view.frame.size.height- (44+20+49)
| 归档时间: |
|
| 查看次数: |
31742 次 |
| 最近记录: |