iOS11安全区域适配总结
iOS11安全区域适配总结
iOS 11 安全区域适配总结
简书-Markdown 新⼿指南
导语:本⽂主要是对iOS 11下APP中tableView内容下移20pt或下移64pt的问题适配的⼀个总结。内容包括五个部分:问题的原因分析、adjustContentInset属性的计算⽅式、什么情况下的tableView会发⽣内容下移、有哪些解决⽅法、解决这个问题时遇到的另外⼀个⼩问题。
(第⼀次写简书,转载其他⼈内容,记录⼀下,可以实时进⾏补充)
像雕塑一样活着⼀、iOS 11下APP中tableView内容下移20pt或下移64pt的原因分析
坛子菜
问题如下图所⽰:
法国和波兰谁会赢
乐观心态正能量感悟问题.png
1. 原因分析
原因是iOS 11中Controller的automaticallyAdjustsScrollViewInsets
属性被废弃了,所以当tableView超出安全区域时系统⾃动调整了SafeAreaInsets值,进⽽影响adjustedContentInset值,在iOS 11中决定tableView的内容与边缘距离的是adjustedContentInset属性,⽽不是contentInset。adjustedContentInset的计算⽅式见本⽂第⼆部分内容。因为系统对adjustedContentInset值进⾏了调整,所以导致tableView的内容到边缘的距离发⽣了变化,导致tableView下移了20pt(statusbar⾼度)或64pt(navigationbar⾼度)。
杭州一日游
如果你的APP中使⽤的是⾃定义的navigationbar,隐藏掉系统的navigationbar,并且tableView的frame为(0,0,SCREEN_WIDTH,
漂亮脸蛋动画SCREEN_HEIGHT)开始,那么系统会⾃动调整 SafeAreaInsets值为(20,0,0,0),如果使⽤了系统的navigationbar,那么SafeAreaInsets值为(64,0,0,0),如果也使⽤了系统的tabbar,那么SafeAreaInsets值为(64,0,49,0)。关于什么情况下会发⽣内容下移的问题,
本⽂第三部分有介绍。
2. 安全区域的概念
系统⾃动调整tableView内容偏移量,是根据安全区域来调整的。安全区域是iOS 11新提出的,如下图所⽰:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。