因为我想在屏幕左侧显示菜单数量,就像下面一样 - 它是一个新的 Facebook 应用程序。当你点击显示为红色方块的栏时,左侧的列表视图在之后出现在我的应用程序中滑动正确的部分是否有任何 sdk 可用于添加此内容。请帮助我。
5 回答
不,没有可用的 SDK 来执行此操作。你可以通过两种方式做到这一点。
- 通过使用两个 UIViewController
- 通过使用两个 UIView。
我推荐第二个,因为我已经使用它并且工作正常。
对于第一种方法,您可以在 github.com 上找到一些示例和演示。
让我简要介绍一下我是如何使用两个 UIView 实现它的。
您的所有正常内容将在默认 UIView 中,滑动控件将在第二个视图中。
默认情况下,普通 UIView 将可见,滑块 UIView 位于 -x pos 类似 (-200,0,200,320) 的位置,根据您的需要进行设置。
当您单击显示/隐藏按钮时,它会更改其框架属性,因此普通 UIView 滑动右侧 200 pt 并且滑块 UIView 进入屏幕。
让我向你展示一些隐藏/取消隐藏的代码:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
view.frame = CGRectMake(250,
view.frame.origin.y,
view.frame.size.width,
view.frame.size.height);;
slideView.frame = CGRectMake(0, view.frame.origin.y, 250, view.frame.size.height);;
[UIView commitAnimations];
CGRectMake 中的参数可以是任何你想要的。
要实现这一点,请创建 UIView 的子类。如果你想看起来像 facebook,可以添加 UITableView。
更新:
在搜索一些新的实现时,我发现一位开发人员在这个概念上做得很好。如果有人想添加此功能,则必须访问一次: MMDrawerController
一切顺利
您可以使用InteractiveSideMenu库。它支持交互式打开/关闭菜单。它支持交互式打开/关闭菜单和以下自定义:
- 动画时长
- 可见内容宽度
- 内容量表
- 使用带有参数自定义的弹簧动画
- 动画曲线等动画选项
你应该使用 3 个基本的 ViewController 来创建子类来实现你的侧边菜单。
MenuContainerViewController
是菜单和内容视图的主机MenuViewController
是菜单视图的容器MenuItemContentControlller
是对应菜单项的内容的容器
要设置侧面菜单,您应该做 3 件事:
- 提供基础的实现
MenuViewController
并将其分配给menuViewController
属性 - 提供菜单内容的实现并将内容控制器数组分配给
contentViewControllers
属性 - 通过调用选择初始内容控制器
selectContentViewController(_ selectedContentVC: MenuItemContentViewController)
这是设置主机控制器的示例。
import InteractiveSideMenu
class HostViewController: MenuContainerViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.menuViewController = self.storyboard!.instantiateViewController(withIdentifier: "NavigationMenu") as! MenuViewController
self.contentViewControllers = contentControllers()
self.selectContentViewController(contentViewControllers.first!)
}
private func contentControllers() -> [MenuItemContentViewController] {
//here is instantiation of content view controllers
}
}
您可以在此处的示例中找到更多详细信息。