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

How to create Side Menu on right side in Swift 3.0?

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

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

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

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

Anuj跟着步骤走就对了-

  1. 创建一个 SideMenuViewController,它是 UIViewController 的子 class,根据要求使用故事板。
  2. 通过单击 UIButton 添加此 SideMenuViewController 及其视图作为父视图控制器中的子视图控制器。
  3. 完成后,从父视图控制器中删除 SideMenuViewController,并从父视图中删除其视图。

对所有视图控制器重复 2 和 3。

更新代码

在你的视图控制器中声明 -

var sideMenuViewController = SideMenuViewController()
var isMenuOpened:Bool = false

viewDidLoad

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

在您的 button Clicked 事件中 -

  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)