iPhone X 自定义标签栏问题

Posted

技术标签:

【中文标题】iPhone X 自定义标签栏问题【英文标题】:iPhone X custom tab bar issue 【发布时间】:2017-10-30 07:12:17 【问题描述】:

我们的应用中有自定义标签栏。自定义标签栏的高度是固定的。它适用于除 iPhone X 之外的所有设备。问题是自定义标签栏的高度为 45,但在 iPhone X 中它会与主页指示器发生冲突。所以我们将自定义标签栏的底部更改为安全区域。但问题是我会在自定义标签栏下方看到背景视图。我的问题是我们如何给自定义标签栏提供限制,使除 iPhone X 之外的所有设备都具有相同的高度,并且还隐藏 iPhone X 的底部空间? 但我想增加 iPhone X 中标签栏的高度但我不应该影响其他设备。顺便说一句,我不想​​编写代码来分离 iPhone X 和其他设备。我只想在故事板本身中做这件事。

【问题讨论】:

如果您能解释一下您尝试解决问题的原因,以及它如何未能满足您的要求,这将有助于其他人帮助您。 @GwendalRoué 编辑了我的问题 你实现安全区布局了吗***.com/questions/46317061/… 【参考方案1】:

这个怎么样?

    将您的视图设置在安全区域内 为您的自定义标签栏设置固定高度 在安全区域底部和超级视图底部之间放置一个视图并设置边距

参考下图

约束

iPhone X 上的样子

在其他 iPhone 上的样子

【讨论】:

@venky 您在问题中没有提到这一点。要显示和隐藏自定义选项卡栏,请将自定义选项卡栏的高度设置为约束,然后将其链接到 IBOutlet。您需要在运行时以编程方式对其进行更改。【参考方案2】:

在底部做一个大于 44pt 的视图效果视图怎么样?我已经在我的应用程序中尝试过,效果很好。

参考:https://novemberfive.co/blog/apple-september-event-iphonex-apps/

【讨论】:

【参考方案3】:

希望这能以编程方式帮助您

self.tabBar.layer.masksToBounds = true 
self.tabBar.isTranslucent = true 
self.tabBar.barStyle = .blackOpaque 
self.tabBar.layer.cornerRadius = 20 
self.tabBar.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]

【讨论】:

以上是关于iPhone X 自定义标签栏问题的主要内容,如果未能解决你的问题,请参考以下文章

Phonegap:在标签栏中添加自定义图标

自定义标签栏按钮,而不是 UITabBarController

自定义 UIToolbar 太靠近 iPhone X 上的主页指示器

如何创建自定义标签栏...在标签栏中添加自定义图像(无需 xib 更改)

自定义标签栏问题

iOS 自定义标签栏项目比标签栏高