这是一个有趣的问题。在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,但实际上它位于屏幕中间的某个位置!
有人知道这里发生了什么吗?
答案 0 :(得分:0)
我想说这是因为框架被设置在iPhone框架的顶部(从底部开始是320px),然后调整视图大小以适应iPad屏幕。但是,默认情况下,UIToolbar设置为粘贴在窗口的底部(固定的底部边距和灵活的上边距),因此它从底部保持320px。
要解决此问题,请尝试:
[self.aToolbar setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin];
在设置工具栏的框架之前(如果在设置框架之前它不起作用,请尝试将其放置)