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

anu*_*nuj 1 amslidemenu swift3

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

到目前为止,我有一个UIButton正确的顶部viewController,我想要的是当我点击那个按钮我show/hide slide menu想说3项...

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

Ami*_*han 14

Anuj只是按照步骤 -

  1. 创建一个SideMenuViewController子类UIViewController,使用故事板根据需求查看它的外观.
  2. SideMenuViewController通过UIButton单击将此及其视图添加为父视图控制器中的子视图控制器.
  3. 完成后,SideMenuViewController从父视图控制器中删除并从父视图中删除其视图.

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

更新的代码:

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

var sideMenuViewController = SideMenuViewController()
var isMenuOpened:Bool = false
Run Code Online (Sandbox Code Playgroud)

viewDidLoad

    sideMenuViewController = storyboard!.instantiateViewController(withIdentifier: "SideMenuViewController") as! SideMenuViewController
    sideMenuViewController.view.frame = UIScreen.main.bounds
Run Code Online (Sandbox Code Playgroud)

在您的buttonClicked活动中 -

  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)
     }

}
Run Code Online (Sandbox Code Playgroud)

对于动画:

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)
Run Code Online (Sandbox Code Playgroud)