从第一个视图翻转时第二个视图向上移动
问题描述:
我正在构建一个ap,其中需要从superView中移除当前视图并加载另一个视图。但是新加载的视图向上移动。同样,当第一个视图再次加载时,它会完美加载。从第一个视图翻转时第二个视图向上移动
任何人都可以建议一些东西来摆脱这个问题。
以下是我使用的视图翻转secondView
-(void) flipToBack
{
CreateMessageViewController *oSecondView = [[CreateMessageViewController alloc] initWithNibName:@"CreateMessageViewController" bundle:nil];
[self setMsgViewController:oSecondView];
[oSecondView release];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.8];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:window cache:YES];
[viewController.view removeFromSuperview];
[tabBarController.view removeFromSuperview];
[self.window addSubview:[msgViewController view]];
[UIView commitAnimations];
}
提前感谢的方法!
期待您的回应。
感谢
答
经过很长时间玩代码和IB,我发现了错误。它被纠正为
打开mainWindow.xib并添加库中的UIViewController对象。将其类更改为处理指定viewController的类,然后进行单击。转到属性检查器的属性部分,并为控制器设置相应的笔尖名称,现在保存并退出IB。
和代码更改
-(void) flipToBack
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.8];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:window cache:YES];
[viewController.view removeFromSuperview];
[tabBarController.view removeFromSuperview];
[self.window addSubview:[msgViewController view]];
[UIView commitAnimations];
}
感谢所有谁回答!
答
没有太多我可以告诉大家不用看大图。检查IB中的帧,看看它们是否正确设置。 这是你的appDelegate的代码吗? viewController是否在他的视图中显示了一个工具栏?也许你的看法转移了你的工具栏高度的确切像素?
答
明白了。 这是由于IB设置发生的。所以在IB你的viewController有一个statusBar,你的视图的高度为460(对于iPhone)而不是480.20点是statusBar的高度。当转换到第二个视图时,其矩形为{0,0,320,460}
,因此视图位于应用程序的状态栏后面,并且缺少底部的20个点。
要解决这个问题,你需要:
- 走进IB并设置CreateMessageViewController的一个状态栏未指定。
- 进入视图大小部分并将视图的高度设置为480(对于iPhone)。
现在您的CreateMessageViewController视图将正常显示。
感谢您的回复......但IB中的帧完全放置,移位不等于工具栏的高度。问题依然存在,即使没有任何工具栏 – devsri 2011-02-16 10:19:43
雅代码是AppDelegate的一部分...... – devsri 2011-02-16 10:21:54