最近在项目的开发中用到了XIB自定义View, 而在我把View设置为TableView的头视图和add到TableView上的时候, 在TableView滑动到上部安全区域的时候会出现一个 1.子控件偏移问题 2.位置坐标不对问题
第二个问题很简单之前也遇到过, 是因为通过XIB自定义View默认的autoresizingMask是被勾选的, 而我们代码实现自定义View是没有的, 所以把勾选去掉只留下2个。
第一个问题就很奇葩之前一直没遇到过, 为了解决这个问题我在百度找个好久都没遇到答案, 可能是大部分人不喜欢XIB布局, 所以没遇到这个bug。
后来, 我创建了一个纯净工程, 专门测试了一下, 排除了其他因素, 所以经过不断思索才想到在iOS 11的时候创建出来的XIB是默认勾选 Use Safe Area Layout Guides
这个选项的, 而它必须在iOS 9之后才可以使用, 低于这个版本的App会有报错,所以我把这个属性取消勾选后测试了一下, 发现正常了。
整个解决过程挺恶心的, 看似简单, 越简单反馈越难解决, 就好像我们高中的数学题, 题目越简单解答起来越难, 因为它提供的线索少。