2010-09-20 62 views
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时下移30px是否有可能为图如图

+0

setBounds仅影响视图的大小。 setFrame会影响原点和大小。 – AechoLiu 2010-09-20 08:25:41

+0

它做同样的事情。视图加载,然后它下移到我设置的值 – Spire 2010-09-20 09:46:31

回答

1

问题是您正在设置动画块中的视图边界。在执行翻转过程所需的时间内,视图原点将从(0,0)到(0,-30)生成动画。

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

+0

,因为我知道在加载视图后,viewDidLoad会进行额外的设置。它在应用程序的注释部分中是这样说的。尽管如此,我尝试了这一点并且它做了同样的事情 – Spire 2010-09-20 09:47:17

+0

在动画块中也有addSubview,这似乎有点奇怪。这可能意味着你的viewDidLoad仍然在动画块中被调用。如果您在beginAnimations行之前添加了addSubview,它是否有所作为? – Echelon 2010-09-20 11:10:12

+0

哦,男人,这是很多thanx – Spire 2010-09-20 11:50:30

相关问题