iOS iphonex底部安全区域

适配iPhone X,对于一般的app,只支持竖屏展示的,底部就成为了适配的重点,当在初始化控件使用self.view.safeAreaInsets.bottom获取底部安全区域高度的时候,发现获取到的值为0,并不是期望的34.前提是你用的autolyout布局,

问题出在哪,不是你的iPhone X是假的,是真的获取不到。只有在VC的
- (void)viewDidLayoutSubviews这个方法里,你获取到的才是,所以在这方法里面才能获取到self.view.safeAreaInsets.bottom的值。

为什么会出现这种情况,下面说明VC中的两个方法
1.ViewDidLoad
2.ViewDidLayoutSubViews

页面中使用autolayout进行布局时,方法1调用是在约束之前,方法2调用是在约束之后。这是它们在调用时机上的区别。还有就是方法2在页面约束发生变化的时候就会调用,所以它的调用次数是根据页面而定的,如果页面涉及到很多的约束变化,这个方法就会调用很多次,所以,方法2内部直接初始化某些控件或者是耗内存太多的操作是非常不合适的。切记切记!!!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值