[英]Custom Tab Bar iOS
当您分解任何UIKit
组件时,例如UITabBar
,您将发现的只是其他UIKit
组件,它们都可供我们使用。 虽然有时使用 Apple 的预构建东西很好,但他们并不总是喜欢我们干涉他们,他们经常隐藏我们想要修改的行为。
您应该完全零担心创建自己的 UI 组件,例如自定义标签栏,就我们而言,它只不过是带有UIButton
或UIImageView
子视图的UIView
容器。 如果你有一个容器视图控制器(包含子视图控制器),把标签栏放在那里,你将有一个合法的标签栏,它总是叠加在内容视图控制器上,除了呈现的视图控制器(这正是我们想要的行为)。
就 iPhone X 和安全区域而言,只需按照您通常的任何视图应用它们,因为这就是您的所有自定义标签栏:
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
对于您对调整大小的担忧,如果您在容器视图控制器中设置标签栏约束(就像您无论如何都应该做的那样),它将以各种可能的方式拉伸和旋转,而不会失败。
您可以使用ESTabBarController
它易于使用并且可以解决您的问题..:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.