菜鸟教程小白 发表于 2022-12-12 17:07:14

ios - 如何检查 NSLayoutConstraint 是否动画


                                            <p><p>我正在创建一个自定义 NSLayoutConstraint 子类,我需要知道布局约束的 <code>constant</code> 属性当前是否正在为内部状态处理设置动画。也就是说,我需要区分:</p>

<pre><code>{ //no animation
    myLayoutConstraint.constant = 100;
}
</code></pre>

<p>和</p>

<pre><code>{ //animated
    myLayoutConstraint.constant = 100;
    [UIView animateWithDuration:0.2 animations:^{
      ;

    } completion:^(BOOL finished) {
      [...]
    }];
}
</code></pre>

<p>这样我就可以处理在动画中间接收消息的极端情况。这可能吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>做到这一点的唯一方法是在您想要访问它的任何地方都有一个 bool 值并执行类似...</p>

<pre><code>{ //no animation
    theView.animatingChange = NO;
    myLayoutConstraint.constant = 100;
}

{ //animated
    theView.animatingChange = YES;
    myLayoutConstraint.constant = 100;
    [UIView animateWithDuration:0.2 animations:^{
      ;

    } completion:^(BOOL finished) {
      [...]
      theView.animatingChange = NO;
    }];
}
</code></pre>

<p> View 上的属性立即更改为动画的“结束”值。它在制作动画时不会更改为所有中间值。只是屏幕上的绘图是动画的。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何检查 NSLayoutConstraint 是否动画,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/20467844/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/20467844/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何检查 NSLayoutConstraint 是否动画