これが私の質問の実例です:
同じ画像を表示する ViewControllers A & BにStarImageViewがありますが、その ViewController には互いに異なるフレームがあります。
ViewController A のStarImageViewがタップされると、アプリは新しい View Controller を Navigation Controller スタックにプッシュし、同時に ViewController B の最終フレームにアニメーション化します。
この動作は、iPhone の写真アプリのトランジションに似ています。
今のやり方
ViewController Aの初期StarImageViewのフレームと画像を使用してアニメーターオブジェクトの一時UIImageViewを初期化し、四角形(ViewController BのStarImageViewCGRectMake(0, 60+44, containerView.bounds.size.width, containerView.bounds.size.width)
のフレーム)をハードコーディングして最終フレームにアニメーション化し、スーパービューから一時UIImageViewを削除しますアニメーション完了ブロック。
代わりにどのようにやりたいか
プロジェクトは、自動レイアウトが有効なストーリーボードで作成されます。私がやりたいことは、上記のようにハードコーディングするのではなく、遷移中に ViewController B でStarImageViewのフレームを取得することです。ViewContorller のライフサイクルが原因で、まだ初期化されていないため、アニメーター オブジェクトの ViewController B のサブビューを参照できません。
このような状況に対する他の解決策やベスト プラクティスはありますか? 前もって感謝します!