菜鸟教程小白 发表于 2022-12-12 12:35:32

ios - CALayer "contents"属性上的隐式动画


                                            <p><p>根据核心动画文档,设置图层内容应触发隐式 0.25 动画,该动画将在新旧图像之间转换。
我还看到很多地方人们都在问如何删除这个隐式动画,但由于某种原因,当我在我的项目中尝试这个时,我会立即交换图像。
在文档中阅读了更多内容,我看到这段代码被剪断了:</p>

<pre><code>- (id&lt;CAAction&gt;)actionForLayer:(CALayer *)theLayer
                        forKey:(NSString *)theKey {
    CATransition *theAnimation=nil;

    if () {

      theAnimation = [ init];
      theAnimation.duration = 1.0;
      theAnimation.timingFunction = ;
      theAnimation.type = kCATransitionPush;
      theAnimation.subtype = kCATransitionFromRight;
    }
    return theAnimation;
}
</code></pre>

<p>这意味着“内容”不是隐式动画。</p>

<p>我很想更好地理解这一点。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>好的,我正在从我的应用程序中复制一些代码。首先,我通常不是使用 alloc..init.. 而是使用 +animation 来获取 CATransition。其次,我没有看到您正在向图层添加过渡。第三,我不确定 CATransition 是隐式动画的,CALayer 属性是的。</p>

<pre><code>CATransition *transition = ;
    transition.duration = 1;
    transition.timingFunction = ;
    transition.type = kCATransitionPush;
    transition.subtype = slideCATransitionCompareTable[ arc4random() % 4]; //to get a random subtype
    ;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - CALayer&#34;contents&#34;属性上的隐式动画,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/17744359/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/17744359/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - CALayer &#34;contents&#34;属性上的隐式动画