1
-(void)CallingView2{

    SettingsViewController *aSettingsView = [[SettingsViewController alloc] initWithNibName:@"Settings" bundle:nil];

    [self setSettingsViewController:aSettingsView];
    [aSettingsView release];

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1.0];
    //setting the animation
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window cache:YES];
    [self.window addSubview:[settingsViewController view]];
    **[[settingsViewController view] setBounds:CGRectMake(0, -30, 320, 480)];**

    [UIView commitAnimations];}

アニメーションをコミットするコードの星の間にコードを配置しましたが、動作します。ビューを必要に応じて移動しますが、ビューに回転すると、ビューが下に移動していることがわかります。ビューが表示される前にビューの境界を設定することは可能ですか?

4

1 に答える 1

1

あなたの問題は、アニメーション ブロック内でビューの境界を設定していることです。ビューの原点は、フリップ遷移の実行にかかる時間中に (0,0) から (0,-30) にアニメーション化されます。

ビューコントローラーのviewDidLoadでビュージオメトリを設定する方が良い方法です。

于 2010-09-20T08:54:40.523 に答える