工具栏不在它应有的位置

时间:2011-08-31 22:06:34

标签: iphone objective-c ipad

我有一个iPhone应用程序。我正试图让它成为普遍的新的xib。从UI方面来说,我的应用程序非常简单直接,我只有一个UIImageview和一些工具栏。

我遇到了一个问题,我将我的顶部工具栏设置为0,0但是当它是iPad时它出现在我的屏幕中间。

        topToolBar.frame = CGRectMake(0, (-1 * topToolBar.frame.size.height), topToolBar.frame.size.width, topToolBar.frame.size.height);

我最初隐藏工具栏并显示它,如果你点击屏幕(在iPhone上正常工作)。当我尝试将工具栏隐藏在iPad上时,它位于屏幕中间。当我记录帧时,它会显示(0,-44,320,44),这意味着它仍然认为屏幕大小是(480,320)的iphone。

有趣的部分是当我使用我的点击功能来显示/隐藏工具栏时,它的行为正确,框架为(0,-44,768,44)。

我的隐藏/显示动画块是:

    [UIView animateWithDuration:.2
                      delay:0
                    options:(UIViewAnimationOptionAllowUserInteraction)
                 animations:^{
                     topToolBar.frame = CGRectMake(0, (-1 * topToolBar.frame.size.height), topToolBar.frame.size.width, topToolBar.frame.size.height);
                 }
                 completion:nil];

它与我用来尝试最初隐藏工具栏的代码相同。任何想法发生了什么?

1 个答案:

答案 0 :(得分:0)

我猜这是工具栏的自动调整掩码的问题。如果您在Interface Builder中创建它,请确保底部的支柱是灰色的,并且其他三个侧面的支柱都会突出显示,如下所示:

flexible width and bottom margin

如果您是以编程方式创建工具栏,则可以将其autoresizingMask设置为UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin