これは簡単です。メソッド内の変数を保存する
私はビューを上下に移動する方法があります。その間、UIButtonを上下に動かしてから、メソッドが再び実行されるときにボタンを元の位置に戻します。
私はフロートで元の位置を得ることができたと思ったoriginalCenterX = topSubmitButton.center.xとfloat originalCenterY = topSubmitButton.center.yもちろん、メソッドのヒット時にボタンの中央で上書きされます二回目。
メソッドの複数の反復で変数を保存するにはどうすればよいですか?
-(IBAction)scrollForComment {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
CGRect rect = self.view.frame;
NSLog(@"button center x = %f y = %f",topSubmitButton.center.x,topSubmitButton.center.y);
float originalCenterX = topSubmitButton.center.x;
float originalCenterY = topSubmitButton.center.y;
if (commentViewUp) {
rect.origin.y = self.view.frame.origin.y + 80;// move down view by 80 pixels
commentViewUp = NO;
CGPoint newCenter = CGPointMake(57.0f , 73.0f); // better to calculate this if you are going to rotate to landscape
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5f];
topSubmitButton.center = newCenter;
[UIView commitAnimations];
} else { // toggling the view's location
rect.origin.y = self.view.frame.origin.y - 80;// move view back up 80 pixels
commentViewUp = YES;
CGPoint newCenter = CGPointMake(160 , 74.0f + topSubmitButton.center.y);// would like to calculate center
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5f];
topSubmitButton.center = newCenter;
[UIView commitAnimations];
}
self.view.frame = rect;
[UIView commitAnimations];
}
ボーナスはCGPointのx値にビューの中心を置く方法を教えてもらうことができます。
メンバー変数またはグローバル変数(メンバー関数またはグローバル関数があるかどうかによって異なります)に値を格納したいと思っています。私はObjective-Cを本当に知らないので、答えとして投稿しません。 –
また、幅を2で割って四角形の左辺のxオフセットに加算することで、任意の種類の矩形の「中央」を得ることができます(たとえば、いくつかの単位右の方へ)。 –