1

3 つのボタンがある単純なアプリケーションを作成しようとしています。ユーザーがいずれかのボタンをクリックすると、新しい位置にアニメーション化 (移動) されます! これはすべて、次のコードから機能します。

[UIView animateWithDuration:1.2
                  delay:0.1
                options: UIViewAnimationCurveEaseOut
             animations:^
 {
 //Moving the Sum (UIButton which will move through this animation)
 CGRect frame =  Sum.frame;
 frame.origin.y = -20;
 frame.origin.x = (-120);
 Sum.frame = frame;
 .....
....
 }
             completion:^(BOOL finished)
  {
 NSLog(@"Completed");
//adding subview after the animation is complete! newView is an example!
[self.view addSubview:newView];}];

問題は、サブビューをメイン ビューに追加すると、すべてのボタンが元の位置に戻ることです。つまり、それらは永久に移動されませんでした..どうすればこれを解決できますか? みんな助けてください!

4

2 に答える 2

1

ビューを追加するとどうなりますか? レイアウトが実行されます。あなたは2つの間違いを犯した可能性があります

  1. 自動レイアウトを使用しています。

    自動レイアウトを使用している場合、フレームを直接変更することはお勧めできません。再レイアウトすると、現在の制約を使用してビューが元の位置に更新されます。

  2. layoutSubviewsviewWillLayoutまたはでフレーム位置を設定していますviewDidLayout

    元の位置を設定する場所を確認してください。メソッドを複数回呼び出すことはできますか?

于 2013-09-19T08:28:59.127 に答える
0

新しいフレームの X、Y 位置を保存し、このフレームをコーディングして設定します。

于 2013-09-19T07:49:43.327 に答える