UIView AnimationブロックがCore Animationをフードの下で使用し、Core Animationが元のビュー/レイヤーのコピーである「プレゼンテーション」レイヤーをアニメーション化するという事実と関係があります。アニメーションは予定されていた。したがって、ブロックのアニメーション中に、プレゼンテーションレイヤの位置は変化しますが、モデルビューの位置は変更されません。
希望の効果を得るためにビューの位置を手動で更新することができます(逆方向のサブビュー位置)ので、毎秒60回アニメーションスケジュールの時間にNSTimerを作成することを検討してください(アニメーション自体の設定+アニメーションの引数として指定された特別なタイミング関数によって設定されたように)プレゼンテーションレイヤーに現在の位置を照会するだけで、基礎となるモデルを更新してそれに合わせて更新することができます。
あなたはしてアニメーションレイヤーの位置を照会することができるはずです。そして、タイマーを無効にし、あなたのアニメーションに完了ブロックを追加
yourUIView.layer.presentationLayer.frame.origin
。
ビューのレイヤプロパティにアクセスする前に、あなたのプロジェクトに私はこれを行うことができます
QuartzCore.framework
乾杯、
を追加する必要がありますが、それはアニメーションブロックには本当にありませんが、それ自体が。私は手動でNSTimerでそれを行うことができますが、私はそれがないとこれを行う方法があるのだろうかと思っています。 – TigerCoding
私は見るのですが、問題はサブビューの場所がスーパービューに関連しているため、「移動しない」ように見えるように余分な作業が必要です。 2つのブロックを持つことができない理由はありますか?追加のアニメーションはサブビュー用であり、最初のアニメーションと同じですが反対方向です。 – Bobjt
私は同じ問題を抱えているので、あなたは答えを得ましたか? –