如何在Swift 3.0中创建右侧菜单?

时间:2017-09-18 06:53:48

标签: swift3 amslidemenu

我是初学者,我想在右侧创建侧边菜单。

到目前为止,我在UIButton的右上方有一个viewController,我想要的是当我点击该按钮时,我想show/hide slide menu说出3项......

当我点击每个项目时,它将转到不同的视图控制器。在我的项目中,我只使用AMSlideMenu在一个viewController中显示幻灯片菜单。提前谢谢。

2 个答案:

答案 0 :(得分:14)

Anuj只需按照步骤 -

  1. 创建一个UIViewController,它是SideMenuViewController的子类,使用故事板根据需求查看它的外观。
  2. 通过UIButton点击,将此SideMenuViewController及其视图添加为父视图控制器中的子视图控制器。
  3. 完成后,从父视图控制器中删除var sideMenuViewController = SideMenuViewController() var isMenuOpened:Bool = false 并从父视图中删除其视图。
  4. 对所有视图控制器重复2和3。

    更新了代码

    在视图控制器中声明 -

    viewDidLoad

    sideMenuViewController = storyboard!.instantiateViewController(withIdentifier: "SideMenuViewController") as! SideMenuViewController sideMenuViewController.view.frame = UIScreen.main.bounds

    button

    func openAndCloseMenu(){ if(isMenuOpened){ isMenuOpened = false sideMenuViewController.willMove(toParentViewController: nil) sideMenuViewController.view.removeFromSuperview() sideMenuViewController.removeFromParentViewController() } else{ isMenuOpened = true self.addChildViewController(sideMenuViewController) self.view.addSubview(sideMenuViewController.view) sideMenuViewController.didMove(toParentViewController: self) } } 点击的活动中

    let transition = CATransition()
    
    let withDuration = 0.5
    
    transition.duration = withDuration
    transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
    transition.type = kCATransitionPush
    transition.subtype = kCATransitionFromLeft
    
    sideMenuViewController.view.layer.add(transition, forKey: kCATransition)
    

    动画

    dependent: :destroy

答案 1 :(得分:0)

iOS中没有用于侧边菜单的内置控件。但是,您可以使用不同的开源库来实现目标。

查看以下库:

https://github.com/John-Lluch/SWRevealViewController

此库的详细教程:

  1. http://www.appcoda.com/ios-programming-sidebar-navigation-menu/

  2. http://www.raywenderlich.com/32054/how-to-create-a-slide-out-navigation-like-facebook-and-path