2016-07-30 6 views
0

1つのView Controllerでうまく機能するキーフレームアニメーションがあります。その後、そのコードを別の同様のVCにコピーしました。違いは、今回はビューがアニメーション化されて画面全体を移動することが、UIViewを追加してネストした1つのレイヤーであることです。これは座標問題を引き起こしているようです。異なる階層のあるビューを別のビューにアニメーション化する

は、私はこのように、この先のxポイントを得る:

self.animatedView.frame.origin.x = last_Pos!.x 

私は両方に「last_Pos」のプリントをした:キーフレームで次に

let last_Pos = destinationImg.superview?.convertPoint(destinationImg.frame.origin, toView: nil) 

が、私はこのようなXを設定します元のViewControllerと新しい。それは465の同じx値を得ているので、それは問題ではありません。私はかなり私の問題は、2番目のVCでは、465は余分な層に適用されている/それが入れ子になってUIView。私は thisを研究したが、多くのSwiftで書かれていないが、Objective - Cのように思えるこれを行う方法。

私の質問は、これらの2つのビューの同じレイヤーでx値を取得する方法です。

答えて

0

上で説明したように、私は "absolute" x &yポジションを得て、異なる階層の2つのビューをアニメートしようとしていました。あなたがわからない場合は、frame.origin.xまたはframe.origin.yをチェックすると、その親ビューを参照しているコンテキストx &の位置になります。私はうまくいった答えを見つけることができず、誰もこのスレッドで答えなかった。

だから... ...私の答えよりほとんどの場合にうまく動作するように見えるパッチワークの修正のようだった。

私は単にインタフェースビルダで別のビューを追加しました。

  • 私は
など、
  • を「スティックを測定する」という名前を付けそして
  • それが不可視になると、それはボタンのタップをブロックしないように、それはすべて私のボタンの下に座っていることを確認しました

    自動レイアウトの制約では、アニメーションの元のビューに一端を接続し、反対側のエンドをアニメーションを終了したいビューに接続しました。魔法は、向きの変更、iPhone、iPadのレイアウトなどで幅と高さが変わることです。

    私のアニメーションのすべてのコードでは、「測定スティック」の幅と高さをチェックし、 x & y。

    これが役に立ちます。

  • 関連する問題