8

因为我想在屏幕左侧显示菜单数量,就像下面一样 - 它是一个新的 Facebook 应用程序。当你点击显示为红色方块的栏时,左侧的列表视图在之后出现在我的应用程序中滑动正确的部分是否有任何 sdk 可用于添加此内容。请帮助我。

在此处输入图像描述

4

5 回答 5

8

看看

https://github.com/BenHall/ios_facebook_style_navigation

你会找到很多方法来做到这一点。根据您的需要选择任何人。

于 2013-01-16T06:25:09.213 回答
3

Facebook 的人在新版本的应用程序中做得非常出色。可以从这里找到类似的开源代码-

它揭示了为 iPhone 进行拆分视图背后的技术。

编辑:其他一些开源代码:

来源 1
来源 2
来源 3
来源 4
来源 5
来源 6
来源 7
来源 8
来源 9
来源 10
来源 11

于 2013-01-16T06:19:24.017 回答
3

不,没有可用的 SDK 来执行此操作。你可以通过两种方式做到这一点。

  1. 通过使用两个 UIViewController
  2. 通过使用两个 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

一切顺利

于 2013-01-16T06:29:04.447 回答
3

您可以使用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
    }
}

您可以在此处的示例中找到更多详细信息。

于 2017-02-18T10:32:47.920 回答
0

这是实现它的好而简单的例子

单击以下链接获取它https://github.com/nverinaud/NVSlideMenuController

于 2013-01-16T06:50:03.797 回答