占屏幕一半的tabView
tabView that occupies half of screen
如下图所示,我在屏幕中间添加了一个 tabBar,我希望它可以在屏幕底部的两个视图之间切换。有没有办法做到这一点?
是的,您可以使用 containerViews 完成此操作,从对象库中拖出一个 VC 并将 2 个 UIContainerViews 拖入其中,分别挂接到顶部和底部锚点,它们之间具有等高约束,然后嵌入每个子项VC 在 UITaBarController 内,您也可以通过将 2 个子 UITabBarControllers 添加到 mainVC 中以编程方式完成此操作,并使用适当的约束使它们占用所需的 space
如果您想在已有的基础上使用另一个 VC,我无法告诉您具体的操作方法,但我能够创建与您想要的效果非常相似的效果使用此回购协议:https://github.com/martinnormark/HalfModalPresentationController
这使用另一个 VC 作为屏幕的下半部分视图,当它存在时,您无法与上半部分(在您的情况下,您的日历)进行交互。
或者,如果您不想使用另一个视图控制器,而是想在您已有的 VC 中使用一个简单的 UIView,您可以使用此代码来检测何时选择了 TabBar 上的按钮。
func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
if item.title = "some_title" {
firstView.isHidden = true
secondView.isHidden = false
}
}
不要忘记将 UITabBarDelegate
添加到您的 class 并将 link TabBar 添加到界面生成器上的委托(或在您的 viewDidLoad 上添加 tabBar.delegate = self
).
如下图所示,我在屏幕中间添加了一个 tabBar,我希望它可以在屏幕底部的两个视图之间切换。有没有办法做到这一点?
是的,您可以使用 containerViews 完成此操作,从对象库中拖出一个 VC 并将 2 个 UIContainerViews 拖入其中,分别挂接到顶部和底部锚点,它们之间具有等高约束,然后嵌入每个子项VC 在 UITaBarController 内,您也可以通过将 2 个子 UITabBarControllers 添加到 mainVC 中以编程方式完成此操作,并使用适当的约束使它们占用所需的 space
如果您想在已有的基础上使用另一个 VC,我无法告诉您具体的操作方法,但我能够创建与您想要的效果非常相似的效果使用此回购协议:https://github.com/martinnormark/HalfModalPresentationController 这使用另一个 VC 作为屏幕的下半部分视图,当它存在时,您无法与上半部分(在您的情况下,您的日历)进行交互。
或者,如果您不想使用另一个视图控制器,而是想在您已有的 VC 中使用一个简单的 UIView,您可以使用此代码来检测何时选择了 TabBar 上的按钮。
func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
if item.title = "some_title" {
firstView.isHidden = true
secondView.isHidden = false
}
}
不要忘记将 UITabBarDelegate
添加到您的 class 并将 link TabBar 添加到界面生成器上的委托(或在您的 viewDidLoad 上添加 tabBar.delegate = self
).