iOS 相同代码在不同手机上的差异(持续更新)

最近写转场动画的SDK,发现切换模拟器后,会有一些bug,相同的代码,在不同的模拟器上有不同的效果(模拟器都是相同的系统)

1、UIPanGestureRecognizer

通过[recognizer translationInView:self.view] 获取point

  • 在6和se上面,point先改变然后手势状态变成began,也就是point的x、y不为0之后。才变成began
  • 在6s和7上面,手势先变成bagan,然后point才开始改变.
iOS 相同代码在不同手机上的差异(持续更新)_第1张图片
iphone6
iOS 相同代码在不同手机上的差异(持续更新)_第2张图片
iphone6s

笔者推断,造成这些差异的应该是因为6s和7使用了压力感应的屏幕。


2、snapshotViewAfterScreenUpdates

snapshotViewAfterScreenUpdates这个api是获取当前屏幕快照,于iOS7提出,一般使用于转场动画,例如[self.navigationController.view snapshotViewAfterScreenUpdates:NO],关于这个api用法介绍不再多说。

  • 在6、6s、se上面,这个api可以正常获取屏幕截图。
  • 在7上面,这个api会获得一个空白的view。

iOS 相同代码在不同手机上的差异(持续更新)_第3张图片
iphone6s

iOS 相同代码在不同手机上的差异(持续更新)_第4张图片
iphone7

需要说明的是,均采用iOS10.2的系统,都是模拟器,所以与系统无关

你可能感兴趣的:(iOS 相同代码在不同手机上的差异(持续更新))