昨天收到了一个BUG反馈:某界面在 iOS10 环境上进入就会崩溃

然后我本地模拟器复现了一下确实如此:

Terminating app due to uncaught exception ‘NSInvalidUnarchiveOperationException’, reason: ‘Could not instantiate class named _UIScrollViewLayoutGuide’

由于我是 Xcode11 环境下 xib 拖拽的 ScrollView

因此了解到是由于 Content Layout Guide 这个属性是在 iOS11 之后才添加的(其实是我百度的),要在 iOS11 以下的环境运行就要把它取消选中

说实话,我个人很不喜欢新版的 ScrollView ,因为在 xib 布局使用上非常不自♂由,没有了之前的简便(最后还不是要真香),百度到的新版的使用方法也是各不相同:

使用方法1 使用方法2

(其他的也有,就不做列举了)

再说回来,因为新添加的 Content Layout Guide 这一属性造成的低版本闪退问题其实很简单,不用它就完了(完全明白的同学可以关页面了(笑))

这是新版 ScrollView xib 文件的 Content Layout Guide 属性相关

因为相比以前他多了 Content Layout Guide 和 Frame Layout Guide 两项,仅仅因为这两项造成了我们拖拽 xib 布局变得很繁琐

因此不光可以为了兼容 iOS10 以下版本使用,平时不想用新版 ScrollView 特性的朋友也可以这么干:

首先我们取消 ContentLayoutGuide 的选中

可以看到 Content Layout Guide 和 Frame Layout Guide 没有了,这样就可以用之前的 ScrollView 的拖拽方式去搭建了

另外别忘了选择 xib 的最低兼容环境(还有 Xcode 的)

意思是这么个意思,看完了也就觉得原来如此我说的啰嗦了

(无后续 BUG 开发)