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 自定义标签栏问题的主要内容,如果未能解决你的问题,请参考以下文章
自定义标签栏按钮,而不是 UITabBarController
自定义 UIToolbar 太靠近 iPhone X 上的主页指示器