通过控制器创建导航抽屉?

Tec*_*ain 7 xcode ios navigation-drawer swift

我通过从左到右预先设置一个带有自定义动画的控制器来创建一个演示导航抽屉.当我们关闭控制器时,我们从右到左应用动画.它虽然有效,但抽屉动画看起来不像原生的android抽屉那么好.所以你能告诉我实现这一目标的最佳方法是什么.虽然我不想依赖任何第三方来实现此功能.

@IBAction func actionMenu(_ sender: Any) {

        let controler:DrawerController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "DrawerController")
        as! DrawerController
        let transition = CATransition()
        transition.duration = 0.5
        transition.type = kCATransitionPush
        transition.subtype = kCATransitionFromLeft
        transition.timingFunction = CAMediaTimingFunction(name:kCAMediaTimingFunctionDefault)
        view.window!.layer.add(transition, forKey: kCATransition)
        present(controler, animated: false) {
            controler.drawerView.backgroundColor = UIColor.black
            controler.drawerView.alpha = 0.6
        }
    }
Run Code Online (Sandbox Code Playgroud)

下面是故事板截图 在此输入图像描述 在此输入图像描述

Ash*_*ini 0

您可以将UIView 的.xib作为导航抽屉,并应用自定义动画,通过更改它的 X 坐标和框架来从左到右呈现此 UIView,而不是使用另一个 ViewController。