2016-04-03 12 views
0

私はすでにイメージのレイアウトを行っています。だから私はCGPointのxとyの値を持っていません。 Storyboard picture 画像でわかるように、私は5つの円と1つのメインサークルを作った。ユーザーがアプリを開くと、5つのサークルがメインサークルの背後から来るようにしたいと考えています。私は多くの研究を行い、物理学などでより現実的に見えるので、私は春のアニメーション方法を使うことができることを発見しました。しかし、それはうまくいっていませんでした。すばやい春アニメーションをイメージに追加するにはどうすればよいですか?

最初に円1の中心を変更して、それをメインサークルの背面に送ります(これは機能しませんでした)。失敗のために円は後ろから上がらない。

なぜ私は円の位置を変更できなかったのか分かりません。私はすでにレイアウトを作ったからでしょうか?ここで

は私のコードです:

@IBOutlet weak var mainCircle: UIButton! 
@IBOutlet weak var circle1: UIImageView! 



override func viewDidAppear(animated: Bool) { 

self.circle1.center = self.mainCircle.center

UIView.animateWithDuration(0.5, delay: 0.5, usingSpringWithDamping: 0.9, initialSpringVelocity: 0.0, options: [] , animations: { 
     self.circle1.center = CGPointMake(160, 219) 
     }, completion: nil) 
} 

これで私を助けてください。 ありがとうございます。

答えて

0

オプションのパラメータを[]に設定すると、オプションは春のアニメーションには何も設定されません。 viewDidLoad()方法の内部

self.circle1.center = self.mainCircle.center

:あなたのアニメーションのために


は、この行を置きます。

次に、スプ​​リングアニメーションでコードを変更して、固定の値ではなく、mainCirleの相対位置を使用して位置を計算します。そう:

self.circle1.center = CGPointMake(self.mainCircle.center.x-75, self.mainCircle.center.x-75) 

この点は、円をメインサークルからどのような方向にしてもかまいません。


完全なコード:

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.circle1.center = self.mainCircle.center 
} 

override func viewDidAppear(animated: Bool) { 
    UIView.animateWithDuration(0.5, delay: 0.5, usingSpringWithDamping: 0.9, initialSpringVelocity: 0.0, options: [] , animations: { 
     self.circle1.center = CGPointMake(self.mainCircle.center.x-75, self.mainCircle.center.x-75) 
    }, completion: nil) 
} 
+0

はい、ありました。どうもありがとうございます。しかし、私はまだオブジェクトを移動することはできません。何か案は? –

+0

ビューが読み込まれたときにアニメーションを作成する場合は、viewDidLoadメソッドではなく、viewDidAppearメソッドでアニメートしていることを確認してください。なぜなら、viewDidLoadではビューが表示される前に起こるからです。これでうまくいかない場合は、コードを呼び出すときやコードの残りの部分を表示するなど、より多くのコードを表示できますか? – brimstone

+0

お返事ありがとうございます。なぜそれがうまくいかなかったのか分かりません。私はあなたに私のコード全体を示すことができるように質問を編集しています。もう一度それを確認できますか?まず、すべての小さな円をメインサークルの背後に配置したいと思います。ユーザーがアプリを開いたときに、小さな円を元の場所に移動してから、前に自動配置を行います。どうもありがとうございます。 –

0

に探して価値が春のアニメーションを簡単にするため、本当に便利なライブラリがあります。あなたは以下のそれをダウンロードすることができます:

https://github.com/MengTo/Spring

私は自分のアプリケーションでのアニメーションの多くを持っており、これはそれが本当に簡単になります。おそらく、すべての円を中心に設定し、次にx、yを変更し、animateTo()を使用したいと思うでしょう。