移动UIToolbar的最佳方法是什么?

时间:2010-04-16 02:16:42

标签: iphone uikit uitoolbar

这是一个有趣的问题。在iPhone上,我有一个视图设置,在屏幕底部有一个工具栏。我目前正在努力使其成为一个通用的应用程序,以便它也可以在iPad上运行。我希望工具栏位于iPad屏幕的顶部,因此在特定viewController的viewDidLoad方法中,我有以下代码。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    //move the toolbar to the top of the page and move the webview down by the height of the toolbar
    CGRect toolBarFrame = self.aToolBar.frame;
    CGRect webFrame = self.aWebView.frame;

    webFrame.origin.y = toolBarFrame.size.height;       
    [self.aWebView setFrame:webFrame];      

    toolBarFrame.origin.y = 0;
    [self.aToolBar setFrame:toolBarFrame]; 

    [Utils errorString:[NSString stringWithFormat:@"origen: x=%f y=%f", self.aToolBar.frame.origin.x, self.aToolBar.frame.origin.y]];
    [Utils errorString:[NSString stringWithFormat:@"origen: x=%f y=%f", self.aWebView.frame.origin.x, self.aWebView.frame.origin.y]];
}

我遇到的问题是webView移动得很好,但工具栏只会移动到大约iPhone屏幕的高度。对errorString的调用告诉我webView的原点是0.44(它应该在哪里)并且工具栏的原点是0,0,但实际上它位于屏幕中间的某个位置!

有人知道这里发生了什么吗?

1 个答案:

答案 0 :(得分:0)

我想说这是因为框架被设置在iPhone框架的顶部(从底部开始是320px),然后调整视图大小以适应iPad屏幕。但是,默认情况下,UIToolbar设置为粘贴在窗口的底部(固定的底部边距和灵活的上边距),因此它从底部保持320px。

要解决此问题,请尝试:

[self.aToolbar setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin];

在设置工具栏的框架之前(如果在设置框架之前它不起作用,请尝试将其放置)