不使用约束的UIToolbar的safeAreaInsets

时间:2017-11-26 09:41:27

标签: ios objective-c ios11 uitoolbar

我有一个应用程序以编程方式执行所有UI而不使用自动布局或任何类型的约束。在屏幕的底部是一个UIToolbar。我试图将其与iPhone X屏幕的底部安全区域配合使用,但由于VC的设计,我无法使用布局限制。

所以在我的layoutSubviews回调我这样做:

public void ConfigureServices( IServiceCollection services ) {

    services.AddMvc();
    JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();

    services.AddAuthentication( options => {
        options.DefaultScheme = ??????;
        options.DefaultChallengeScheme = ??????;
        options.???
    } )
    .AddCookie()
    .??????
    ;            
}

然后直接使用toolBarHeight设置UIToolbar的框架。

这适用于工具栏现在是正确的高度,并在旋转到横向时调整,但问题是工具栏的按钮不是顶部对齐,而是垂直居中。我无法弄清楚如何设置contentInsets或某种方式来顶部对齐UIToolbar按钮而不使用约束。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

UIToolbar将自动填充安全区域。保持工具栏的高度(例如49pts),并将其放置在底部,以便工具栏的底部位于底部安全区域指南的顶部。

self.toolbar.width = self.view.width
self.toolbar.height = 49.0
self.toolbar.bottom = self.view.height - self.view.safeAreaInsets.bottom

以上代码使用UIView+FrameAdjustments