iOS9:
App Thinning: 包括slicing, bitcode都是在不同设备上打包不同的app版本,
iOS10:
UIRefreshControl: 原来只是TableViewController的属性,现在增加成 UIScrollView的属性。可以脱离controller使用 跳转到设置的方式:可以用 UIApplicationOpenSettingsURLString UITableView和UICollectionView的 Pre-Feching 预加载和生命周期的优化,例如prepareForReuse方法比之前版本要提前,且是一个一个的加载,而不是之前的一行一行的加载,且会把滑出屏幕的cell保存一段时间,防止又滑回来导致重新走一遍cell的生命周期。 scroolview卡顿优化方式处理离屏渲染等方式,还可以使用pre fetch方式,子线程预加载数据来实现一定的性能提升
iOS11:
UIScrollView: 废弃了UIViewController的 automaticllyAdjustsScrollViewInsets属性,新增contentInsetAdjustmentBehavior,当超出安全区域时系统自动跳转safeAreaInsets。 进而影响adjustContentInset。
iOS12:
libc++替代 libstdc++
iOS13:
通过KVC调用一些私有API的导致crash, 例如testField的 _placeholderLabel, UISearchbar的 _searchField,13新增searchTextField属性 DeviceToken格式变化了 必须支持 Sign with apple modalPresentationStyle 默认值13开始变为automatic, 之前都是fullscreen DarkMode Xcode11新工程要支持Scene多屏, 低版本黑屏 UIWebView废弃 蓝牙权限需要申请
iOS14:
####隐私权限更新: *1. 照片: 增加选择部分照片权限limited,建议使用PHPicker *2. 通讯录: 不需要权限,可以给textfile设置contenttype,设为通讯录,这样键盘会自动提示,app无需处理 *3. 定位: 增加精确定位和模糊定位的开关 Mac 地址对随着连接不同wifi而变化,且24小时也会更新一次。之前mac地址不会变,目的是防止运营商对用户数据收集和追踪 IDFA 默认关闭用户追踪开关