問題タブ [beginanimations]
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.
ios - クラスの 1 つのインスタンスの UIView beginAnimations は、同じクラスの別のインスタンスの beginAnimations を起動します
私はUIGraphics
コンテキストが苦手なので、ここで何が起こっているのかを助けたり説明したりできることを願っています。
ビュー コントローラーのプライマリ ビューの指定されたスペースに対してラベル テキストが長すぎる場合に、フレーム内でラベルを自動的に前後にスクロールするクラスを定義しました。
親ビューに割り当てられたスペースに収まるスクロールビューで構成され、UILabel
テキストに合わせてサイズ変更された (サブクラス化された) が含まれています。(UILabel は親スクロールビューのサブビューです)。
scrollview は、UILabel を左 -> 右にスクロールするアニメーションをコミットし、アニメーションが終了したら、デリゲートを起動します '
いくつかの数字をリセットし、逆方向にスクロールしてアニメーションを再開しました - >左
これは本当にうまく機能します。
ただし、この「スクロール ラベル」の別のインスタンスをビュー コントローラーのマスター ビューの別の場所に追加すると、アニメーションの 1 つが停止し、AnimationDidStop
デリゲートが起動されると、他の「スクロール」ラベル オブジェクトのアニメーションが最初から再起動されます。
アニメーションの発火を分離するために次のことを試みましたが、肯定的な結果は得られませんでした。ビューのコンテキストと識別子を beginAnimations に渡し、それらを(void)animationDidStop
メソッドにトラップします...違いはありませんでした。これは、メソッドがかからないように思われます
以下は、アニメーションを実行するコードと、アニメーションを別の方向に再起動するコードです。
私が言うように、それはそれ自体で非常にうまく機能しますが、同時に画面上に常駐するこのクラスの複数のインスタンスがある場合、beginAnimations は両方のインスタンスに対して起動するようです。
理由を説明していただければ幸いです。ありがとう。
編集: 追加 28/5/14 @ 13:14 A-Lives がスタティックの使用に関するアドバイスをした後... コードを変更して、そのラベルをフラグとして使用し、スクロールの方向の変更を促すようにしました。これで問題は解決しました
ios - 開始点で UIView を移動する
UIView を左に移動するコードを以下に示します。
私のビューの座標は x = 91 (スーパービューの中心) です。アプリを起動すると、UIView は中央から右に移動するのではなく、左に移動して中央に移動します。これはなぜですか?
左から中央ではなく、UIView を中央 (x=91) から右 (91+100) に移動するにはどうすればよいですか?