iOS9 Storyboard引用了一个新的安全区域UILayoutGuide的概念,假设我们需要使用storyboard,并且同时向下适配iOS8,隐藏navigationbar的vc该怎么处理没有间距呢?

1.storyboard向下适配iOS8,

首先要去掉勾选的Use Safe Area Layout Guides,如图所示
iOS开发之对iOS11安全区域对探索以及解决适配问题

2.代码隐藏navigationbar

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    self.navigationController.navigationBar.hidden = YES;
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    self.navigationController.navigationBar.hidden = NO;
}

3.全屏展示,让视图没有顶部间距
先放一张间距示例
iOS开发之对iOS11安全区域对探索以及解决适配问题

解决的办法是将Top Space to 这条约束改成Superview,同时将上边距改成0,双击右边约束,可查看约束详情
iOS开发之对iOS11安全区域对探索以及解决适配问题
iOS开发之对iOS11安全区域对探索以及解决适配问题
按照图中步骤操作就可以实现了哦~

总结一下:
1.iOS7: topLayoutGuide/bottomLayoutGuide,利用一个虚拟的view初步解决导航栏,tabbar的隔离问题。

2.iOS9:有了虚拟view的思路,又考虑能不能去除top/bottom概念的局限性,让开发者都可以灵活自定义这个隔离区域,又提供一些更方便简洁易懂的API方便进行代码自动布局,于是有了UILayoutGuide这个类。

3.两年后的iOS11,有了iPhone X,苹果工程师顺理成章的将他们在iOS9的探索成果利用起来,他们自定义了一个UILayoutGuide,给开发者提供了一个只读属性的safeAreaLayoutGuide,并且提出安全区域的概念。

相关文章:

  • 2022-12-23
  • 2021-06-03
  • 2021-07-25
  • 2021-04-12
  • 2021-04-19
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-10
  • 2021-10-10
  • 2021-05-07
  • 2021-08-16
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案