将页面上下颠倒时,工具栏会消失

时间:2011-12-06 12:31:41

标签: iphone objective-c ipad rotation portrait

所以这几乎肯定是一个简单的答案,但我不能为我的生活做出努力!

基本上,我希望我的当前应用程序只能以纵向(至少现在)以及正确向上或向上颠倒的方式查看。一切正常,当你在页面上旋转iPad时,一切正常,页面正常翻转。但是,如果您将iPad倒置(顶部的主页按钮)并单击按钮以加载新页面,则在页面加载时工具栏不可见!我不知道由于某种原因,工具栏是否在其他内容的后面,或者它不在那里。如果您然后将iPad旋转回纵向,则会出现工具栏,所有工具都会恢复正常!

更奇怪的是,在iPhone上,当您加载一个颠倒的iPhone页面时工具栏就在那里!!

我已尝试使用shouldAutorotateToInterfaceOrientation()和didRotateFromInterfaceOrientation()方法进行各种操作,并根据方向调整viewDidLoad的大小/位置。但似乎什么都没有用!!

这是我在viewDidLoad()方法中的代码:

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    NSLog(@"iPhone");
    if ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait)
    {
        self.view.frame = CGRectMake(0, 0, 320, 460);
    }
    else if ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortraitUpsideDown)
    {
        self.view.frame = CGRectMake(0, 20, 320, 460);
    }
}
else
{
    NSLog(@"iPad");
    if ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait)
    {
        self.view.frame = CGRectMake(0, 0, 768, 1024);
        NSLog(@"iPad Portrait Up");
    }
    else if ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortraitUpsideDown)
    {
        self.view.frame = CGRectMake(0, 20, 768, 1024);
        NSLog(@"iPad Portrait Upside Down");
    }
}

我在didRotateFromInterfaceOrientation()方法中尝试了类似的东西,但没有任何工作!

提前感谢您提供任何帮助,随时提出问题/请求更多代码

马特

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,这是我发现的。当您在iPad UIView xib文件的顶部添加工具栏时,默认情况下会自动调整其设置,如下图所示。工具栏将始终贴在底部而不是顶部。

enter image description here

我所做的就是将它改为顶部,如下图所示,它解决了我的问题。

enter image description here

如果以编程方式设置工具栏,则需要更新autoresizingMask。