我正在iPhone中开发一个应用程序。一个视图支持纵向和横向的方向。我对两个方向都有两个单独的视图。此视图顶部有UIToolbar
。
问题是当我将视图从横向更改为纵向时,顶部的UIToolbar
消失。我希望toolbar
在旋转回肖像时回到原来的位置。
这就是我在我的计划中所做的事情:
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)
interfaceOrientation duration:(NSTimeInterval)duration {
if (interfaceOrientation == UIInterfaceOrientationPortrait)
{
self.view = self.portrait;
self.view.transform = CGAffineTransformIdentity;
self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(0));
self.view.bounds = CGRectMake(0.0, 0.0, 300.0, 480.0);
}
else if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
{
self.view = self.landscape;
self.view.transform = CGAffineTransformIdentity;
self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(-90));
self.view.bounds = CGRectMake(0.0, 0.0, 460.0, 320.0);
}
else if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
self.view = self.portrait;
self.view.transform = CGAffineTransformIdentity;
self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(180));
self.view.bounds = CGRectMake(0.0, 0.0, 300.0, 480.0);
}
else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
self.view = self.landscape;
self.view.transform = CGAffineTransformIdentity;
self.view.transform =
CGAffineTransformMakeRotation(degreesToRadian(90));
self.view.bounds = CGRectMake(0.0, 0.0, 460.0, 320.0);
}
}
我不知道我在这里失踪了什么?任何帮助都会非常感激。
答案 0 :(得分:2)
在界面构建器中,选择工具栏,按命令-3;这会打开标尺/对齐控制菜单。
在“自动调整大小”部分下,默认情况下,工具栏仅与左右和中心耦合。不是TOP。选择顶部的“I”。现在工具栏相对于视图的顶部停靠,并且在旋转期间不会被推开。
我确信还有相同的代码
答案 1 :(得分:1)
如果您只想让视图可旋转,就足以实现
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ return YES; }
答案 2 :(得分:1)
self.view.bounds = CGRectMake(0.0, 0.0, 300.0, 480.0);
这里的问题是你的高度是480.但它应该是460.所以你现在的高度增加了20px,这可能会让屏幕稍微偏离屏幕。