我正在构建一个所有视图都应该自动旋转的 iPad 应用程序。一种观点让我很头疼。
我知道这个问题的变体已经被问过几次了,但我找不到一个可行的解决方案..
我通过调用应用程序中的例程来切换到此视图。代表。这个例程的代码是:
- (void)flipToBack {
//NSLog(@"%s", __FUNCTION__);
DrawingViewController *drawView = [[DrawingViewController alloc] initWithNibName:@"Draw" bundle:nil];
[self setDrawingViewController:drawView];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window cache:YES];
[self.window addSubview:[drawView view]];
[UIView commitAnimations];
// NSLog (@" FINISHED ");
}
这是一个带有 UIView 子视图的视图控制器 (mvc),后者在其中进行绘图。mvc 和子视图都没有正确旋转。
我用来在 mvc 中调用旋转的代码是:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
mvc 有两个工具栏,顶部和底部,需要调整大小。无论旋转如何,这些也应保持在顶部和底部。
项目摘要显示支持所有方向,但我认为这仅适用于应用程序。初始化。
我已经为 mvc 启用了所有的支柱。
我正在构建这样的工具栏:
UIInterfaceOrientation fieldOrient = [[UIApplication sharedApplication] statusBarOrientation];
if ((fieldOrient == UIDeviceOrientationLandscapeLeft) || (fieldOrient == UIDeviceOrientationLandscapeRight)) {
CGRect frame = CGRectMake(0, 50, 1024, 35 );
topToolbar.frame = frame;
} else {
CGRect frame = CGRectMake(0, 50, 768, 35 );
topToolbar.frame = frame;
UIInterfaceOrientation fieldOrient = [[UIApplication sharedApplication] statusBarOrientation];
if ((fieldOrient == UIDeviceOrientationLandscapeLeft) || (fieldOrient == UIDeviceOrientationLandscapeRight)) {
CGRect frame = CGRectMake(0, 650, 1024, 35 );
bottomToolbar.frame = frame;
} else {
CGRect frame = CGRectMake(0, 950, 768, 35 );
bottomToolbar.frame = frame;
我想我错过了一些明显的东西。任何帮助/指针将不胜感激。