从标签栏弹出(如 Yelp 应用程序)
Popup From a Tabbar (Like Yelp App)
我几乎在尝试复制与您在 yelp 应用程序中看到的相同的 tabBar 弹出窗口(底部屏幕截图之前和之后),无论您在哪个视图中,您都可以按下中心 tabBar项目和弹出将出现。
巧合的是,我有 5 个 tabBar 项(如 Yelp),我正在尝试为每个弹出窗口添加一个图像和标题(如 Yelp).看到我正在尝试做的事情已经在应用程序中完成,这告诉我这是可能的,但我不知道该怎么做。我试图改变视图控制器之间的关系类型或以编程方式进行,但似乎没有任何效果。 我错过了什么或做错了什么?
Tabbar 控制器代码:
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
if viewController.tabBarItem.tag == 1 {
return false
} else {
return true
}
}
按下前
按下后
一种解决方案是采用 UITabBarControllerDelegate
。
这样我们就可以使用委托的 func tabBarController(UITabBarController, didSelect: UIViewController)
方法来改变常规的呈现行为并改为显示我们的弹出窗口。我们可以找到相对于选项卡栏按钮所需的偏移量(根据 CGPoint),然后应用该偏移量并将弹出按钮添加到作为子视图。 请注意,对于此方法,您需要以编程方式设置弹出按钮的框架。
或者,您也可以制作一堆弹出按钮,并在单击时将它们的 alpha 设置为零和 1。希望这有帮助!谢谢:)
- Custom action for tab bar
- UITabBarControllerDelegate documentation
我几乎在尝试复制与您在 yelp 应用程序中看到的相同的 tabBar 弹出窗口(底部屏幕截图之前和之后),无论您在哪个视图中,您都可以按下中心 tabBar项目和弹出将出现。
巧合的是,我有 5 个 tabBar 项(如 Yelp),我正在尝试为每个弹出窗口添加一个图像和标题(如 Yelp).看到我正在尝试做的事情已经在应用程序中完成,这告诉我这是可能的,但我不知道该怎么做。我试图改变视图控制器之间的关系类型或以编程方式进行,但似乎没有任何效果。 我错过了什么或做错了什么?
Tabbar 控制器代码:
func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
if viewController.tabBarItem.tag == 1 {
return false
} else {
return true
}
}
按下前
按下后
一种解决方案是采用 UITabBarControllerDelegate
。
这样我们就可以使用委托的 func tabBarController(UITabBarController, didSelect: UIViewController)
方法来改变常规的呈现行为并改为显示我们的弹出窗口。我们可以找到相对于选项卡栏按钮所需的偏移量(根据 CGPoint),然后应用该偏移量并将弹出按钮添加到作为子视图。 请注意,对于此方法,您需要以编程方式设置弹出按钮的框架。
或者,您也可以制作一堆弹出按钮,并在单击时将它们的 alpha 设置为零和 1。希望这有帮助!谢谢:)
- Custom action for tab bar
- UITabBarControllerDelegate documentation