移动 UIToolbar 的最佳方式是啥?

Posted

技术标签:

【中文标题】移动 UIToolbar 的最佳方式是啥?【英文标题】:What is the best way to move a UIToolbar?移动 UIToolbar 的最佳方式是什么? 【发布时间】:2010-04-16 02:16:41 【问题描述】:

这是一个有趣的问题。在 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,但它实际上是在屏幕中间的某个位置!

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

【问题讨论】:

你能发布所有的 viewDidLoad 吗? 【参考方案1】:

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

要解决此问题,请尝试:

[self.aToolbar setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin];

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

【讨论】:

以上是关于移动 UIToolbar 的最佳方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何在屏幕顶部添加 UIToolbar?

以编程方式定位 UIToolbar 的最佳方式(有或没有 UIToolbarDelegate)?

进行移动和服务器同步的最佳方式是啥?

在 SwiftUI 中以编程方式移动 NavigationView 的最佳实践是啥

CSS/HTML |将注册移动到菜单底部的最佳方式是啥? [复制]

将手机位置从移动应用程序发送到服务器的最佳方式是啥?