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]