我是初学者,我想在右侧创建一个侧面菜单。
到目前为止,我在 的UIButton
右上角有一个viewController
,我想要的是当我点击那个按钮时,我show/hide slide menu
想说 3 个项目......</p>
当我单击每个项目时,它将转到不同的视图控制器。在我的项目中,我使用 AMSlideMenu 仅在一个 viewController 中显示幻灯片菜单。提前致谢。
我是初学者,我想在右侧创建一个侧面菜单。
到目前为止,我在 的UIButton
右上角有一个viewController
,我想要的是当我点击那个按钮时,我show/hide slide menu
想说 3 个项目......</p>
当我单击每个项目时,它将转到不同的视图控制器。在我的项目中,我使用 AMSlideMenu 仅在一个 viewController 中显示幻灯片菜单。提前致谢。
Anuj 只需按照步骤操作-
SideMenuViewController
哪个是 的子类UIViewController
,使用情节提要根据要求的外观。SideMenuViewController
通过单击将其及其视图添加为父视图控制器中的子视图控制器UIButton
。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)
iOS 中没有内置的侧菜单控件。但是,您可以使用不同的开源库来实现您的目标。
看看以下库:
https://github.com/John-Lluch/SWRevealViewController
该库的详细教程: