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];}

我已将代码放在我提交动画的代码中的星星之间,它可以正常工作,它会按应有的方式移动视图,但现在的问题是,当我旋转到视图时,我可以看到视图何时向下移动。是否可以在显示之前为视图设置边界,这样用户每次进入设置时都看不到它何时向下移动 30px

4

1 回答 1

1

您的问题是您正在动画块内设置视图边界。在执行翻转过渡期间,视图原点将从 (0,0) 动画到 (0,-30)。

在视图控制器的 viewDidLoad 中设置视图几何图形将是一种更好的方法。

于 2010-09-20T08:54:40.523 回答