热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

UIViewPropertyAnimator在iOS10和iOS11上反转动画的不同行为.`isReversed`和`fractionComplete`属性的错误?

如何解决《UIViewPropertyAnimator在iOS10和iOS11上反转动画的不同行为.`isReversed`和`fractionComplete`属性的错误?》经验,为你挑选了1个好方法。

问题
在iOS10和iOS11上运行相同的代码我的UIViewPropertyAnimator在更改其.isReversed属性后就有了不同的行为.

在iOS10上一切都很好.动画问题发生在iOS11上

条件
对于任何动画都是如此,不仅对于特定的动画,它都可以通过观看动画和代码来验证.它发生在模拟器和真实设备上.

DETAILS
一旦用他的动画创建了一个UIViewPropertyAnimator,在它运行期间我只需调用.pauseAnimation()并将.isReversed属性更改为true.之后我恢复了动画调用:

continueAnimation(withTimingParameters parameters: UITimingCurveProvider?, durationFactor: CGFloat)

在iOS10的这一点上,动画平滑地改变了他的诗句,在iOS11上它立即停止并且以一点帧滞后反转.

如果在代码中我检查.fractionComplete(在我的UIViewPropertyAnimator对象上调用它的值,让我回到完成动画的百分比值,从0.0开始,结束于1.0)之后.continueAnimation(...

- 在iOS 10上,它会保留一段时间,如果动画仍在继续,只有在一段时间后跳到他的补充.

- 在iOS 11上,它突然跳起来在他的补充


文件中有与此相关的非更新,只是UIViewPropertyAnimator的几个新属性但未使用,因为我的目标是iOS10

可能是一个错误或我错过了什么!?


小更新:刚刚测试过,iOS 11.0.1和iOS 11.1 beta1上的行为相同

在评论中链接,这只发生在非线性曲线上!



1> Kasper Munck..:

我已经打了很长一段时间了,但后来我注意到了iOS 11中scrubsLinearly添加的属性UIViewPropertyAnimator:

默认为true.使动画师能够线性地或使用动画师的当前时间暂停和擦洗.

请注意,此属性的默认值是true,这似乎与使用非线性动画曲线发生冲突.这也可以解释为什么在使用线性定时功能时不存在该问题.

设置scrubsLinearlyfalse,动画师似乎按预期工作:

let animator = UIViewPropertyAnimator(duration: 0.25, curve: .easeOut) {
   ...
}
animator.scrubsLinearly = false


推荐阅读
author-avatar
mobiledu2502880253
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有