[适配] iOS 10 Safe Area

现象

Push Storyboard按钮事件Push到最后一个页面。 Back Button先从Tab Bar(此时已经隐藏了)的顶部,而后回到底部。 用为代码描述,大概是经历了ios

back.bottomConstraint.constant = -tabbarHeight;
back.bottomConstraint.constant = 0.0f;
复制代码

环境

  • iOS 10.3.3
  • Storyboard布局
  • 视图层级

  • 最后一页,Back Button布局

  • Hide Bottom Bar on Push: YES

缘由

这里是他们的看法bash

这里发现一个和我同样的问题,很早了,我给了答案ide

Safe AreaiOS 11的特性,对iOS 10支持得不太好(< iOS 11估计都有问题),须要作适配。布局

但奇怪的是,我还没发现Safe Area Top须要适配,显然Safe Area Bottom须要。ui

解决办法

底部约束Safe Area都改为Superview atom

而后绑定约束为属性,代码适配,代码像这样spa

@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没办法搞这种适配,多是我没找到,有的话告诉我❤️code

相关文章
相关标签/搜索