菜鸟教程小白 发表于 2022-12-12 12:48:47

ios - 如何在动画时更改 CALayer 的颜色


                                            <p><p>我有一个圆弧,并改变颜色三遍。我在 SO 上使用了一个示例来帮助我入门:<a href="https://stackoverflow.com/questions/18655496/change-calayer-color-while-animating" rel="noreferrer noopener nofollow">Change CALayer color while animating</a> </p>

<p>这个例子有效,但是颜色是红色,然后是绿色,然后是蓝色。我希望它们是绿色,橙色,然后是红色。我试图弄清楚他是如何在代码中改变颜色的,这让我很困惑:</p>

<pre><code>for (NSUInteger i = 0; i &lt; 3; i++)
      {
            CAShapeLayer* strokePart = [ init];
            strokePart.fillColor = [ CGColor];
            strokePart.frame = tutorialCircle.bounds;
            strokePart.path = tutorialCircle.path;
            strokePart.lineCap = tutorialCircle.lineCap;
            strokePart.lineWidth = tutorialCircle.lineWidth;

            // These could come from an array or whatever, this is just easy...
            strokePart.strokeColor = [ CGColor];
</code></pre>

<p>所以我相信这条线正在改变颜色:</p>

<pre><code>strokePart.strokeColor = [ CGColor];
</code></pre>

<p>我的目标是将这些颜色调整为绿橙红,而不是红绿和蓝。</p>

<p>谢谢</p>

<p>编辑:</p>

<p>这是part的值:</p>

<pre><code>const double portion = 1.0 / ((double)3);
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>HUE-Color 系统以 360 度角定义颜色,其中 0 为红色,108 (360*0,3) 为绿色和蓝色。这就是颜色的生成方式:</p>

<pre><code>strokePart.strokeColor = [ CGColor]; // RED

strokePart.strokeColor = [ CGColor]; // GREEN

strokePart.strokeColor = [ CGColor]; // BLUE
</code></pre>

<p>如果你想改变颜色,你可以将部分移动一些其他值:</p>

<pre><code>strokePart.strokeColor = [ CGColor];
</code></pre>

<p>或者你可以定义一个数组,用你想要的颜色:</p>

<pre><code>NSArray* colors = @[ UIColor.green, UIColor.orange, UIColor.red ];
for (id color in colors)
    {
      CAShapeLayer* strokePart = [ init];
      strokePart.fillColor = [ CGColor];
      strokePart.frame = tutorialCircle.bounds;
      strokePart.path = tutorialCircle.path;
      strokePart.lineCap = tutorialCircle.lineCap;
      strokePart.lineWidth = tutorialCircle.lineWidth;

      // These could come from an array or whatever, this is just easy...
      strokePart.strokeColor = ;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在动画时更改 CALayer 的颜色,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/42007506/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/42007506/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在动画时更改 CALayer 的颜色