现象
Push Storyboard
按钮事件Push
到最后一个页面。
Back
Button先从Tab Bar
(此时已经隐藏了)的顶部,然后回到底部。
用为代码描述,大概是经历了
back.bottomConstraint.constant = -tabbarHeight;
back.bottomConstraint.constant = 0.0f;
环境
iOS 10.3.3
-
Storyboard
布局 - 视图层级
- 最后一页,
Back
Button布局
Hide Bottom Bar on Push: YES
原因
Safe Area
是iOS 11
的特性,对iOS 10
支持得不太好(< iOS 11
估计都有问题),需要做适配。
但奇怪的是,我还没发现Safe Area Top
需要适配,显然Safe Area Bottom
需要。
解决办法
然后绑定约束为属性,代码适配,代码像这样
@interface YourViewController ()
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *bottomConstraint;
@end
@implementation YourViewController
- (void)viewDidLoad {
[super viewDidLoad];
CGFloat bottomValue = 0.0f; // your value
UIEdgeInsets edgeInsets = UIApplication.sharedApplication.keyWindow.layoutMargins;
CGFloat bottomInset = edgeInsets.bottom;
self.bottomConstraint.constant = - bottomInset - bottomValue;
}
@end
为什么
为啥不用直接Storyboard
适配,因为Storyboard
没办法搞这种适配,可能是我没找到,有的话告诉我❤️