iOS11 SafeArea 对应swift 片段

在开发过程中遇到tableView内容下移20pt或下移64pt的问题,对当tableView超出安全区域时系统自动调整了SafeAreaInsets值,进而影响adjustedContentInset值,在iOS 11中决定tableView的内容与边缘距离的是adjustedContentInset属性,而不是contentInset
adjustedContentInset = safeAreaInset + contentInset

在 UIViewContoller 实现 viewSafeAreaInsetsDidChange 方法


    override func viewSafeAreaInsetsDidChange() {
        if #available(iOS 11.0, *) {
            super.viewSafeAreaInsetsDidChange()
            NSLog("viewSafeAreaInsetsDidChange-%@",NSStringFromUIEdgeInsets(self.view.safeAreaInsets))
        } else {
            // Fallback on earlier versions
        }
        self.updateOrientation()
    }

对应的 updateOrientation() 方法内容为

    /**
     更新屏幕safearea frame
     */
    func updateOrientation()
    {
        if #available(iOS 11.0, *) {
            var frame = self.customView.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.customView.frame = frame
        }

    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 语:本文主要是对iOS 11下APP中tableView内容下移20pt或下移64pt的问题适配的一个总结。内容包...
    西门淋雨阅读 3,996评论 0 1
  • 引:本文主要是对iOS 11下APP中tableView内容下移20pt或下移64pt的问题适配的一个总结。内容包...
    小杨哥阅读 7,770评论 1 2
  • 适配iOS11 🍎苹果官方文档🍎苹果官方视频为了挣钱...哦😯不是,为了广大中国的开发者,苹果官方文档出了好多中文...
    philiha阅读 4,874评论 1 50
  • | 导语 本文主要是对iOS 11下企鹅 FM APP中tableView内容下移20pt或下移64pt的问题适配...
    762683ff5d3d阅读 4,959评论 4 2
  • 前言 苹果WWDC开发者大会上,终于发布了大家期待已久的iOS 11,有些新特性功能确实出人意料。不过大的方面苹果...
    Mr_Say_Yes阅读 8,672评论 6 15

友情链接更多精彩内容