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

ios - 正确使用汉化: in setAnimationDidStopSelector:?


                                            <p><p>我有一些扑克牌,当你点击它们时它们会翻转。我希望在翻转动画完成后发生一些事情,所以我在我的 <code>UIView</code> 动画周期中有这个:</p>

<pre><code>;
</code></pre>

<p>...它称之为:</p>

<pre><code>-(void)flipAnimationDone:(NSString *)animationID finished:(BOOL)finished context:(void *)context {
    if (finished == YES) {
      // other stuff here
    }
}
</code></pre>

<p>现在,我需要 <code>if (finished == YES)</code> 位,否则 <code>other stuff</code> 会触发 <em>即使用户点击卡片再次是动画中间</em>,这很糟糕——只有在翻转动画完全完成时才会发生:)</p>

<p>问题是,这不起作用。如果我有 <code>if</code> 在那里,那么 <code>other stuff</code> 无论如何都不会触发。如果我把 <code>if</code> 排除在外,其他东西就会触发,但可能是在错误的时间。</p>

<p><code>finished</code> 位导致其无法正常工作,我做错了什么?</p>

<p>谢谢!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>注意文档说方法签名是</p>

<pre><code>- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context;
</code></pre>

<p>具体来说,</p>

<blockquote>
<p><code>finished</code><br/>
An NSNumber object containing a Boolean value. The value is YES if the animation ran to completion before it stopped or NO if it did not.</p>
</blockquote>

<p>所以,你应该把它设为 <code>(NSNumber *)finished</code> 和 <code>if () { ... }</code>。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 正确使用汉化: in setAnimationDidStopSelector:?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/6965053/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/6965053/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 正确使用汉化: in setAnimationDidStopSelector:?