我在ViewController
上方添加tabBar
cardViewController = storyboard?.instantiateViewController(withIdentifier: "CardViewController") as? CardViewController
addChildViewController(cardViewController)
cardViewController.didMove(toParentViewController: self)
view.addSubview(cardViewController.view)
cardViewController.view.frame = CGRect(x: 0, y: view.frame.height - cardHandlAreaHight - tabBarHight,
width: view.bounds.width, height: cardHight)
cardViewController.view.clipsToBounds = true
我得到的tabBar的大小是这样的:
tabBarHight = tabBarController?.tabBar.frame.size.height
这适用于所有iPhone,但不适用于iPhone X 如何解决这一刻?
答案 0 :(得分:1)
您应该通过“自动布局”放置添加的视图,而不是设置框架。
但是,如果您确实需要处理像素大小,则可以通过
访问底部填充view.safeAreaInsets.bottom
答案 1 :(得分:1)
在我的情况下,获得这一点的正确方法不是获得safeArea而是获得tabBarFrame这样的点
let topTapbarPosition = tabBarController?.tabBar.frame.minY
之后像这样使用它
cardViewController.view.frame = CGRect(x: 0, y: topTapbarPosion! - cardHeight!,
width: view.bounds.width, height: cardHeight!)
在所有型号的iPhone上都可以正常工作