我有一个基于自定义 tabBar 的应用程序controller
,现在,由于我们有安全区域布局,我想更改我的应用程序以充分利用 iPhone X 屏幕。
所以我想修复tabBar的问题,目前不考虑安全区域。
我已经浏览了人们发布的大多数解决方案,但这些解决方案主要是针对UIViewController
.
我当前的 tabBar 看起来像这样
我正在使用RDVTabBar
这个,这个标签栏是一个实例,UIView
我没有使用故事板或 xib,一切都是以编程方式完成的。
解决问题的当前代码
if (@available(iOS 11.0, *)) {
UILayoutGuide *safe = self.view.safeAreaLayoutGuide;
self.tabBar.translatesAutoresizingMaskIntoConstraints = NO;
[NSLayoutConstraint activateConstraints:@[[safe.trailingAnchor constraintEqualToAnchor:self.tabBar.trailingAnchor],
[self.tabBar.leadingAnchor constraintEqualToAnchor:safe.leadingAnchor],
[safe.bottomAnchor constraintEqualToAnchor:self.tabBar.bottomAnchor]]];
[self.tabBar addConstraint:[NSLayoutConstraint constraintWithItem:self.tabBar
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute: NSLayoutAttributeNotAnAttribute
multiplier:1
constant:45]];
}
但这并没有改变任何东西
考虑到我当前的代码结构,我有一个解决方法,这很有效
CGRect frame = self.tabBar.frame;
frame.origin.y = frame.origin.y - 34;
frame.size.height = frame.size.height + 34;
self.tabBar.frame = frame;
但它没有使用安全区域布局指南,如果未来安全区域高度发生变化,那么这将不起作用;所以我不愿意用这个。
那么如何使用仅针对此 tabBar 的安全区域布局指南来解决此问题?