私はあなたがアニメーションの有無にかかわらず何かを行うことができますケースを処理する必要があるのではなく、:UIViewアニメーションブロック:durationが0の場合、アニメーションなしと同じですか?
if (animation)
{
[UIView animateWithBlock:^(){...}];
}
else
{
...
}
私がやりたい:
[UIView animateWithBlock:^(){...} duration:(animation ? duration : 0)]
ではなく、それが動作するかどうか確認し、でもそれならば直接、ビューを変更する代わりに、これを使用するためのオーバーヘッドはありますか?
おかげで時間がゼロであるため
そしてませについてのより多くの思考を行う必要はありません。オーバーヘッドはありますか?すなわち、 '[UIView animateWithBlock:^(){self.view.frame = newFrame} withDuration:0]' vs 'self.view.frame = newFrame'? – hzxu
フレームを最初に設定して、他のフレームと同じように動作させる必要があります。 - はい、オーバーヘッドがあります。 – PappaSmalls
これをiOS 7.1.1 5Sでテストしたところ、その差は大きかった。ビューのランダムフレームを設定するには、^ animateWithBlock:^で22.85秒かかり、ブロックへの直接呼び出しで0.05秒かかりました。ただし、ユーザーとのやりとりのために少数のアニメーションコールしか実行していない場合、その違いは関係ありません。アップル社は将来的に行動を変更し、この重要なケースを最適化する可能性があることに注意してください。 – mkko