gpt4 book ai didi

ios - 自定义标签栏 iOS

转载 作者:行者123 更新时间:2023-12-01 22:18:51 25 4
gpt4 key购买 nike

enter image description here

我想创建一个如图所示的自定义标签栏。我不知道如何开始子类化 UITabBar得到这个结果。
如果我只有一个 Root UIViewController 怎么办? ,并通过interface builder创建标签栏的感知(一个 UIView、图像、圆形按钮等)并添加 ContainerView用于 map 和列表 UIViewController的?如果有的话,这种方法的缺点是什么?调整大小问题(在 iPhone 6 上看起来不错,但在 iPhone X 上看起来不错),因为可能没有标签栏来动态调整大小?

最佳答案

当你打破任何 UIKit组件关闭,例如 UITabBar , 你会发现的只是其他的UIKit组件,我们都可以使用。虽然有时使用 Apple 的预建东西很好,但他们并不总是喜欢我们插手它们,而且他们经常隐藏我们想要修改的行为。

您应该对创建自己的 UI 组件(例如自定义标签栏)完全零恐惧,对于我们的目的而言,它只不过是 UIView。带有 UIButton 的容器或 UIImageView subview 。如果您有一个容器 View Controller (包含 subview Controller ),将标签栏放在那里,您将拥有一个合法的标签栏,它将始终叠加在内容 View Controller 上,除了呈现的 View Controller (这正是我们想要的行为)。

就 iPhone X 和安全区域而言,只需按照您通常的 View 方式应用它们,因为这就是您的所有自定义标签栏:

if #available(iOS 11.0, *) {

tabBar.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor).isActive = true
tabBar.widthAnchor.constraint(equalTo: view.safeAreaLayoutGuide.widthAnchor).isActive = true
tabBar.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true

} else {

tabBar.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
tabBar.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
tabBar.bottomAnchor.constraint(equalTo: bottomLayoutGuide.topAnchor).isActive = true

}

tabBar.heightAnchor.constraint(equalToConstant: 44).isActive = true

对于您对调整大小的担忧,如果您在容器 View Controller 中提供标签栏约束(就像您应该做的那样),它将以各种可能的方式拉伸(stretch)和旋转而不会失败。

关于ios - 自定义标签栏 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47972156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com