移动 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 的最佳方式(有或没有 UIToolbarDelegate)?
在 SwiftUI 中以编程方式移动 NavigationView 的最佳实践是啥