とにかくここで答えを見つけることができません。また、重複する質問も表示されません。
私のコードは単純です。3つのUIView、parent、fromおよびtoが与えられた場合、parentから削除し、サブビューを追加します。+アニメーションを追加しますが、それはやっかいなことです。
さて、問題は私がそれをするとき、それから相殺されることです。まるで押し下げられたかのようです。
To.frame=ParentView.frame;を追加します。それが機能することを確認します。そうではありません。
私は何をすべきでしたか?
+ (void) AnimateSwitchingWithParent: (UIView *) ParentView From: (UIView *) From To: (UIView* ) To
{
/*[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:1.25];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:ParentView cache:YES];*/
[From removeFromSuperview];
[ParentView addSubview:To];
To.frame=ParentView.frame; //If I don't do this, the subview is still off by around 20 points
NSLog(@"To.bounds: %@", NSStringFromCGRect(To.bounds));
NSLog(@"From.bounds.: %@", NSStringFromCGRect(From.bounds));
NSLog(@"ParentView.bounds: %@", NSStringFromCGRect(ParentView.bounds));
//JA_DUMP (To.bounds);
//JA_DUMP (To.bounds);
/*[UIView commitAnimations];*/
}
私は解決策を見つけました。Toのフレームがわかります
To.frames:{{0、0}、{320、372}}
ただし、To.frame = ParentView.frameを削除すると、フレームも削除されます
{{0、20}、{320、460}}
なんでだろう?20ポイントはステータスバーの距離のようです。InterfaceBuilderのどこにそのフレームを設定できますか?
SimulatedMetricセクションでステータスバーをnoneに設定しました。