someMethod
a)ユーザーがビューをタップしたとき、およびb)ユーザーがビューをドラッグしたときに呼び出されるメソッドがあります。には、ビューの上部にあるツールバーを非表示にし、それに応じてフレームをリセットsomeMethod
するブロックがあります。UIView animateWithDuration
ユーザーがビューをドラッグするよりもタップするとsomeMethod
、アニメーションがまだ完了している間に起動されますが、これは私が望む動作ではありません (単純にアニメーションをキャンセルしても、完了ブロックがまだ起動するため機能しません (確認しても'finished' BOOL) すべてのことを考慮して、アニメーションがまだ進行中のときにこのメソッドを起動したくないだけです。
明らかに、これに対する簡単な解決策は、 で手動ロックを設定しBOOL
、ロックが解放された後にのみメソッドを呼び出すことを許可することです。
これを達成するためのよりエレガントな方法はありますか?これを達成するためにGCDまたは他のライブラリを使用することは可能ですか?
更新:同期を使用しようとしましたが、問題はメソッドがアニメーションを起動して終了することですが、アニメーションはまだ別のスレッドで実行されています。他のアイデアはありますか?