問題タブ [animatewithduration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 遅延を考慮しないUIView animateWithDuration
画面全体でイントロ テキストをアニメーション化する一連のアニメーションをスケジュールしたいと考えています。最後のアニメーションは、完了時に、ゲームを実行するゲーム ティック ロジックを起動する必要があります。
何らかの理由で、すべてがすぐに起こっています。なぜこれが起こっているのか、またはより良い代替案について誰かが光を当てることができますか?
xcode - カスタム セグエの向きが横向きで適切な向きを使用していない
カスタム セグエを使用して、2 つのビュー コントローラー間を移動しています。カスタム セグエは、CGAffineTransformMakeScale を使用して、宛先コントローラーでズーム効果を作成します。
プロジェクトをポートレート モードで実行するとすべて問題なく動作しますが、ランドスケープ モードに変更すると問題が発生します。宛先コントローラーは縦向きで画面に表示され、正しいスケール (1.0、1.0) にアニメーション化され、アニメーションが完了すると正しい向きに変わります。これは私にとって本当に混乱を招くものであり、この問題についてオンラインで何も見つけることができないため、どんな助けも大歓迎です.
これをテストするために使用するプロジェクトでは、2 つのビュー コントローラーを使用し、それぞれにセグエをトリガーするボタンがあります。
これは私の CustomZoomSegue.m ファイルです:
なぜこれが起こるのか誰にも分かりますか?それは私を夢中にさせています
ios - アニメーションが完了するまで待機するロックを実行するには?
ユーザー入力を介してアニメーション化するヘルスバーを実装しています。
これらのアニメーションは、特定の量 (たとえば 50 単位) だけ上下に移動し、ボタンを押した結果です。2 つのボタンがあります。増減。
一度に 1 つのスレッドのみが変更できるように、ヘルス バーのロックを実行したいと考えています。問題は、デッドロックが発生していることです。
別のスレッドが別のスレッドによって保持されているロックを実行するためだと思います。しかし、アニメーションが完了すると、そのロックは解除されます。[UIView AnimateWithDuration] が完了したときに終了するロックをどのように実装しますか?
進むべき道なのだろうかNSConditionLock
と思いますが、不必要な複雑さを避けるために、可能であれば NSLocks を使用したいと考えています。おすすめは何ですか?
(最終的には、ユーザー入力を継続しながらアニメーションを「キューに入れる」必要がありますが、今のところ、最初に入力をブロックしても、ロックを機能させたいだけです。)
(うーん、同じ UIView に対して一度に実行される [UIView AnimateWithDuration] は 1 つしかないことを考えてみてください。2 番目の呼び出しは最初の呼び出しを中断し、最初の完了ハンドラーをすぐに実行させます。おそらく、2 番目のロックは、最初にロックを解除する機会があります. この場合、ロックを処理する最良の方法は何ですか? おそらく、グランドセントラルディスパッチに再度アクセスする必要がありますが、より簡単な方法があるかどうかを確認したかった.)
ViewController.h で次のように宣言します。
ViewController.m には次のものがあります。
ロードビューで:
ViewController.m の残りの部分 (関連部分):
出力:
指示を再現するには:「減らす」を1回タップします
touchThreadButton1..
tryTheLock beforeLock..無料。
tryTheLock afterLock.. ロックされています。BEGIN animationBlock - 値: 250 END animationBlock - 値: 250 - 終了: はい
ロックを解除する前にロックを試してください..ロックされています。
tryTheLock afterUnlock..無料。
結論:これは期待どおりに機能します。
--
出力:
手順を再現するには: [減少] をすばやく 2 回タップします (最初のアニメーションを中断します)。
touchThreadButton1..
tryTheLock beforeLock..無料。
tryTheLock afterLock.. ロックされています。BEGIN animationBlock - 値: 250 touchThreadButton1..
tryTheLock beforeLock.. LOCKED. * -[NSLock lock]: デッドロック ( '(null)') * _NSLockError() でブレークしてデバッグします。
結論。デッドロック エラー。ユーザー入力は凍結されています。
ios - animateWithDuration はフェードインおよびフェードアウトできません
ラベルでフェードアウトに続いてフェードインを実行したいのですが、両方を別々に機能させることはできますが、一緒にすることはできません。
これは動作しません
これもうまくいきません。
どうすればこれを解決できますか?
objective-c - animateWithDuration の「列挙型からの暗黙的な変換」
アニメーションを作成しようとすると、UIView
「列挙型からの暗黙の変換」と表示されます
私のコードは次のとおりです。
どうすればこれを修正できるのだろうか?
iphone - animateWithDuration はアニメーションを停止します
私のコードはanimateWithDuration
いくつかの場所で使用しています。
すべてが正常に機能し、アニメーションはしばらくの間正常に再生されますが、画面が突然 0.5 秒間フリーズし、すべてのビューのすべてのアニメーションの再生が停止することがあります。
手段 - オブジェクトのアニメーションが影響を受けますが、持続時間または遅延パラメーターは無視されます。
いくつかのバックグラウンドプロセスによるものだと本当に思いますが、それについてはよくわかりません。
コードのいくつかの場所で、animateWithDuration
で実行される内部メソッドを使用performSelectorOnMainThread
していますが、違いはありません。
どうしてそうなったのか、どうすれば直せるのか、ご意見いただけると幸いです。
前もって感謝します。
ios - アニメーション化された 2 つの形状を表示する
(関数CircleView : UIView
を介して)触れるとアニメーション化(縮小および拡大)するクラスがあります。pop
また、触れたときに(基本的な水の波紋のように)ストロークされた円が表示されて成長することも望んでいます。(私が話している効果はCSS でここに示されています)
どうすればこれを行うことができますか?
いくつかの詳細情報:
CircleView
両方のアニメーションを単一のクラスから制御できることが理想的ですCircleView
継承するUIView
アップデート
回答に基づいて、 を介して新しいオブジェクトを追加しましたsubLayer
。これは問題なく表示されますが、実行中にアニメーション化されませんpop
。誰かが理由を理解するのを手伝ってくれますか?
これが私の現在のコードです(とにかく関連するビット)