- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在高级 CALayer 问题上需要一些帮助。
我有一个添加 CAShapeLayer 的 UIView。该图层已暂停(速度 = 0),并且附加了一个我想手动控制的动画。
与此处非常相似:Tweening / Interpolating between two CGPaths / UIBeziers - 除了我的 View 是一个 Collection View 单元格。
一切都按预期工作,除了我不想从 0 位置开始。每个单元格可能从动画中的不同位置开始。
当 Collection View 询问我的 View 时,我试图将 layer.timeOffset 配置为 0.5 而不是 0。这不起作用,我尝试了我能找到的每个 View 和图层以及委托(delegate)回调。
我发现的唯一解决方法是:dequeueReusableCellWithIdentifier
而不是设置 cellView.subLayer.timeOffset = 0.5;
,我将更新发送到稍后:
dispatch_after(main_queue, a bit later, ^{
cellView.subLayer.timeOffset = 0.5
});
最佳答案
通过操纵动画初始时间偏移找到多个(可能不正确的)解决方案。
最终我决定完全不依赖动画来渲染初始状态。相反,我在动画之外设置正确的属性值,并且仅在实际需要动画时、在用户交互期间添加动画,并在完成后将其删除。
这意味着有更多的代码,但至少它是正确的。图层和媒体计时很棘手。我找到的最好的文章在这里:
关于ios - 什么时候可以使用 CALayer.timeOffset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45388818/
在高级 CALayer 问题上需要一些帮助。 我有一个添加 CAShapeLayer 的 UIView。该图层已暂停(速度 = 0),并且附加了一个我想手动控制的动画。 与此处非常相似:Tweenin
我是一名优秀的程序员,十分优秀!