iOS10的适配问题

iOS9中默认非https是被禁止的不过可以设置
App Transport Security Settings下的Allow Arbitrary Loads设置为YES即可,
iOS10以后就不行了,强制我们使用https,提交App的话会遭到拒绝,需要在
App Transport Security Settings添加一个属性,Exception Domain设置域,也就是
把不支持https协议的端口设置成http端口,每个域下面要设置三个属性。。。包括从网络获取的图片也要设置。


iOS10隐私权限更加严格,如果不设置,很容易崩溃,需要在info.plist中进行设置添加key-value
Xcode8会运行一堆没用的log信息,解决方法:
Edit scheme的run中环境变量中添加一个参数value设置为disable


在iOS10之前,UICollectionView上面如果加载了大量的cell,就会有卡顿现象
因为iOS系统中的重用机制,当cell准备加载进屏幕的时候,整个cell就已经加载完成,等待在屏幕外面了,
也就是整整一行cell都已经加载完毕,这就叫掉帧,如果让用户感觉不到卡顿,必须达到每秒60帧的频率


iOS10之前collectionView的生命周期:
1.用户滑动屏幕,一个cell准备加载进来,把cell从队列中拿出来,调用prepareForReuse方法,在这个方法里面可以重置cell状态,加载新的数据。
2.继续滑动,调用cellForItem方法,在这个方法里给cell赋值模型,return cell
3.当cell马上进入屏幕的时候调用willDisplayCell方法,在这个方法里面我们还是可以修改cell,为进入屏幕做最后的准备工作。
4.cell进入屏幕,等cell完全离开屏幕之后,调用didEndDisPlayCell方法


iOS10之后:
1.对比iOS9,iOS9中cell在屏幕边缘,马上进入屏幕的时候调用prepareForResuse方法,,iOS10中cell在屏幕外面就已经调用
2.填充数据,刷新状态等相比于之前也提前了
3.相比于之前马上进入就调用willDisplayCell方法,现在是需要显示的时候才会调用。
4.iOS9中cell离开屏幕之后就会立刻进入重用队列,在走一遍生命周期方法,而iOS10cell离开屏幕之后系统会保存cell一段时间,
当用户再滑动回来cell的时候,不用在走一遍生命周期了
iOS9cell是一行一行加载的,iOS10cell是一个一个加载的
iOS10中collectionView除了数据源和代理外又增加了预加载协议。
prepareFetch和一个canclePrepareFetch方法
一个是异步加载数据,一个是降低提前加载数据的优先级
都是为了提升性能做准备的,好像对UITableViewCell同样适用。




iOS10中UIColor新增方法,可能是想让加载颜色更加丰富一点吧,不过没怎么使用过
iOS10中字体会随着手机自适应
iOS10中新增refreshControl方法,只要是继承UIScrollView就支持刷新功能
iOS10中Xcode8插件不可用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值