我有一个需要较大标签栏(高度= 75)的应用程序,但是当我更改标签栏的高度时,安全区域插图不会更改,因此当我对底部边距进行约束时,它不会工作,我的内容由我的标签栏覆盖。另外,UITableView
个未设置正确的插图,因此它们无法滚动到底部。
我通过在UITabBarController
子类中添加此覆盖的func来设置标签栏的高度:
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
var tabbarHeight: CGFloat = 75
if #available(iOS 11.0, *) {
if let window = UIApplication.shared.keyWindow {
tabbarHeight += window.safeAreaInsets.bottom
}
}
var tabFrame = tabBar.frame
tabFrame.size.height = tabbarHeight
tabFrame.origin.y = view.frame.size.height - tabbarHeight;
tabBar.frame = tabFrame;
}
这是正确的方法吗?有更好的方法吗?