- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为 CAShapeLayer 的 strokeColor 设置动画,但在 CABasicAnimation 中我有两个值(from 和 to)。动画火时是否只支持两种颜色?例如,开始时我有 strokeColor = [UIColor blueColor].CGColor;
然后
CABasicAnimation *colorAnimation = [CABasicAnimation animationWithKeyPath:@"strokeColor"];
colorAnimation.duration = 3.0; // "animate over 3 seconds or so.."
colorAnimation.repeatCount = 1.0; // Animate only once..
colorAnimation.removedOnCompletion = NO; // Remain stroked after the animation..
colorAnimation.fillMode = kCAFillModeForwards;
colorAnimation.toValue = (id)[UIColor redColor].CGColor;
colorAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
在中途我有一个深紫色,但我需要,例如,黄色。
是否可以向 CABasicAnimation 添加自定义渐变?
最佳答案
我不认为你可以用 CABasicAnimation
做到这一点,但你可以使用 CAKeyframeAnimation
为动画设置中间值:
CAKeyframeAnimation *colorAnimation = [CAKeyframeAnimation animationWithKeyPath:@"strokeColor"];
colorAnimation.values = @[(id)[[UIColor blueColor] CGColor],
(id)[[UIColor yellowColor] CGColor],
(id)[[UIColor redColor] CGColor]];
colorAnimation.duration = 3.0; // "animate over 3 seconds or so.."
colorAnimation.repeatCount = 1.0; // Animate only once..
colorAnimation.removedOnCompletion = NO; // Remain stroked after the animation..
colorAnimation.fillMode = kCAFillModeForwards;
colorAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
如果你想要一种“跨越光谱”的感觉,你可以这样做:
colorAnimation.values = @[(id)[[UIColor blueColor] CGColor],
(id)[[UIColor greenColor] CGColor],
(id)[[UIColor yellowColor] CGColor],
(id)[[UIColor orangeColor] CGColor],
(id)[[UIColor redColor] CGColor]];
或者,如果您想要更多简单的蓝色到红色,但又要避免深紫色,您可以这样做:
colorAnimation.values = @[(id)[[UIColor blueColor] CGColor],
(id)[[UIColor colorWithRed:0.9 green:0.0 blue:0.9 alpha:1.0] CGColor],
(id)[[UIColor redColor] CGColor]];
很多选项。
关于ios - 如何通过自定义渐变更改 strokeColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16366789/
我想为 CAShapeLayer 的 strokeColor 设置动画,但在 CABasicAnimation 中我有两个值(from 和 to)。动画火时是否只支持两种颜色?例如,开始时我有 str
在这个 CG 教程挑战中,我们被要求在 for 循环中增加在 View 上绘制的圆圈的颜色。为此,我设置了一个带有颜色的数组,然后尝试通过使用递增的 i++ 移动到索引中的下一个对象来实现前循环内的颜
我正在使用 swift 4。 我写了下面的代码并尝试用笔画画一个圆。 但是,使用下面的代码我无法绘制我想要的圆。 问题是线是从圆心画到外围 (严格来说,是朝向'startAngle'属性的坐标点)。
我使用贝塞尔曲线创建了 body 图像图。 在我的 customView 中,我为每个 body 部位创建了大约 62 条贝塞尔曲线!最初所有这些都设置为默认颜色。当用户触摸这些路径中的任何一个时,我
我正在尝试为 CAShapeLayar 的 strokeColor 属性设置动画。我查看了文档,并指出它是一个可动画的属性。该代码用于动画 postion.y 但不是 strokeColor。我很乐意
我想绘制对角线 View 。 这是我的代码。 override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(anima
我使用六个参数(事件、非事件、有线、压缩、免费和总计)。我创建了一个 CAShapeLayer 类,并在其中创建了一个函数,我可以在其中绘制圆圈,只需添加参数即可。我制作了 CGPath 并在绘制圆圈
我已经动态添加了一个 CSS 类,如下所示: var style = document.createElement('style'); style.id = "highlightSegment"; v
我的问题是,当我尝试将透明设置为 FreeText 注释的 strokeColor 时,添加一个结果注释有黑色边框。 我尝试这样编码: this.addAnnot({ type: "FreeText"
我正在使用 CABasicAnimation 绘制我在数组中使用 CAShapeLayer 的所有 UIBezierPaths CAShapeLayer *shapeLayer = [CAShapeL
使用 this previous 中的答案,我未能在 CAShapeLayer 上设置闪烁笔画的动画效果线程,经过多次搜索后,我找不到使用 CABasicAnimation 为笔画设置动画的其他示例。
当我更改 SKShapeNode 的 .alpha 时,它的 stroke 显示自己好像节点的 .strokeColor 比它的 .fillColor 更亮。将 .lineWidth 设置为 0 会取
试图在 cardView 周围做一些边框(androidx.cardview.widget.CardView) 这是代码: 结果: 还尝试使用自定义形状作为背景( fix_border.xml )
添加我的代码。它正在添加一个带有另一个 alpha 的边框,如阴影。 let sliderLayer = CAShapeLayer() sliderLayer.fillColor = UICo
我是一名优秀的程序员,十分优秀!