【发布时间】:2018-05-09 17:44:12
【问题描述】:
我有一个应用程序以编程方式完成所有 UI,而不使用自动布局或任何类型的约束。屏幕底部是一个 UIToolbar。我试图将其布置为与 iPhone X 屏幕的底部安全区域很好地配合,但由于 VC 的设计,我无法使用布局约束。
所以在我的 layoutSubviews 回调中,我正在这样做:
if (@available(iOS 11.0, *)) {
toolbarHeight += UIApplication.sharedApplication.keyWindow.safeAreaInsets.bottom;
}
然后稍后直接用toolBarHeight设置UIToolbar的框架。
这样做的原因是工具栏现在是正确的高度,并在您旋转到横向时进行调整,但问题是工具栏的按钮不是顶部对齐,而是垂直居中。我不知道如何设置 contentInsets 或以某种方式在不使用约束的情况下顶部对齐 UIToolbar 按钮。
有什么想法吗?
【问题讨论】:
-
遇到了同样的问题!你最后找到解决办法了吗?
-
这对我有用:stackoverflow.com/a/46684504/431492。我不得不转换为使用约束(仍然以编程方式)仅用于工具栏。
-
@Clafou - 我还没有发布,但确实有一些工作。我所做的实际上是一个 hack。我创建了一个 UIView 子类,其中包含一个子视图——一个 UIToolbar。因此,我调整 UIView 的大小以适合底部的右侧区域,但工具栏的框架位于 UIView 本身的顶部,并使用 sizeToFit 来获取其高度。因此 UIView 会调整以填充整个空间,但 Toolbar 是正常高度,并且在该 UIView 内对齐。
标签: ios objective-c ios11 uitoolbar