iOS 11.0 iPhone X safeArea适配

    • iOS 11.0之后系统新增安全区域变化方法

    1
    2
    3
    4
    UIViewController中新增:
    - ( void )viewSafeAreaInsetsDidChange;
    UIView中新增:
    - ( void )viewSafeAreaInsetsDidChange;
    • 通过安全区域变化来改变视图的位置

    如果屏幕旋转,相应的安全区域也会变化,所以不比担心。![safearea.gif](http://upload-

    1
    2
    3
    4
    5
    6
    7
    8
    images.jianshu.io/upload_images/ 1186277 -ab32b1be56378531.gif?imageMogr2/auto-orient/strip%7CimageView2/ 2 /w/ 1240 )
    - ( void )viewSafeAreaInsetsDidChange {
         [ super   viewSafeAreaInsetsDidChange];
          
         NSLog(@ "viewSafeAreaInsetsDidChange-%@" ,NSStringFromUIEdgeInsets(self.view.safeAreaInsets));
          
         [self updateOrientation];
    }
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /**
      更新屏幕safearea frame
      */
    - ( void )updateOrientation {
         if   (@available(iOS  11.0 , *)) {
             CGRect frame = self.customerView.frame;
             frame.origin.x = self.view.safeAreaInsets.left;
             frame.size.width = self.view.frame.size.width - self.view.safeAreaInsets.left - self.view.safeAreaInsets.right;
             frame.size.height = self.view.frame.size.height - self.view.safeAreaInsets.bottom;
             self.customerView.frame = frame;
         else   {
             // Fallback on earlier versions
         }
    }

    1186277-ec4ce8180ff0b6ce.gif

    safeArea.gif

    说明:使用xib创建视图,工程适配8.0以上系统,xib inspector中未勾选Safe Aear Layout Guide选项(iOS 9.0前无Safe Area Layout Guide)。其中粉色为当前viewcontroller的view,紫色的部分属于安全区域内部分(自定义视图)。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值