半屏视图,iOS边栏菜单

时间:2013-01-16 06:12:39

标签: iphone ios6

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

enter image description here

5 个答案:

答案 0 :(得分:8)

看看

https://github.com/BenHall/ios_facebook_style_navigation

你会发现很多方法可以做到这一点。根据您的需要选择任何人。

答案 1 :(得分:3)

Facebook的人在新版应用程序中做得非常出色。类似的开源代码可以在here -

中找到

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

编辑:很少有其他开源代码:

Source 1
Source 2
Source 3
Source 4
Source 5
Source 6
Source 7
Source 8
Source 9
Source 10
Source 11

答案 2 :(得分:3)

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

  1. 使用两个UIViewController
  2. 使用两个UIView。
  3. 我推荐第二个,因为我已经使用它并且工作正常。

    对于第一种方法,您将在github.com上找到一些示例和演示。

    让我简单介绍一下如何使用两个UIView来实现它。

    您的所有正常内容都将默认为UIView,幻灯片控件将位于第二个视图中。

    默认情况下,普通UIView可见,滑块UIView位于-x pos,类似于(-200,0,200,320) 根据你的需要设置它。

    当您单击显示/隐藏按钮时,它会更改其框架属性,以便正常UIView滑动右侧200磅 和滑块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

    一切顺利

答案 3 :(得分:3)

您可以使用InteractiveSideMenu库。它支持交互式打开/关闭菜单。 它支持交互式打开/关闭菜单和以下自定义:

  • 动画片段
  • 可见内容宽度
  • 内容比例
  • 使用带有参数自定义的弹簧动画
  • 动画曲线等动画选项

您应该使用3个基本ViewControllers来创建子类来实现侧边菜单。

  • MenuContainerViewController是菜单和内容视图的主机
  • MenuViewController是菜单视图的容器
  • MenuItemContentControlller是与菜单项
  • 对应的内容的容器

要设置侧边菜单,您应该做三件事:

  • 提供基本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
    }
}

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

答案 4 :(得分:0)