ボタンを画面外から画面上にアニメーション化する方法を尋ねていると思います。これを行うには、ボタンの原点位置を画面外にある座標に設定するだけです。
self.myButton.frame = CGRectMake(-80, 100, 40, 80);
これが完了したら、投稿したコードを使用して画面にアニメーションを表示できます。ボタンは最初の位置から 2 番目の位置に移動することに注意してください。つまり、使用した座標を使用すると、ボタンは y 位置を変更せずに左側から画面に移動します。ボタンを画面の外に置くほど、setAnimationDuration で割り当てられた時間内に画面に表示されるまでの速度が速くなることに注意してください。
左から画面にアニメーション化するには
self.myButton.frame = CGRectMake(-80, 100, 40, 80);
// begin animation block
[UIView beginAnimations:@"animate" context: nil];
[UIView setAnimationDuration:3];
self.myButton.frame = CGRectMake (20, 100, 40, 80);
// commit frame changes to be animated
[UIView commitAnimations];
また、ボタンが以前に画面に表示されていた場合、そのコードが使用されると、画面からテレポートして戻ってくるように見えます。
ああ、コンテキストに関する質問に答えるには、CGContextRef である必要はありません。任意のデータ型にすることができます (プリミティブではなくオブジェクトである限り)。基本的には、アニメーションが発生したときにデリゲートに渡されるデータです。