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
该库的详细教程:
Anuj跟着步骤走就对了-
- 创建一个
SideMenuViewController
,它是 UIViewController
的子 class,根据要求使用故事板。
- 通过单击
UIButton
添加此 SideMenuViewController
及其视图作为父视图控制器中的子视图控制器。
- 完成后,从父视图控制器中删除
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)
我是初学者,想在右侧创建一个侧边菜单。
到目前为止,我在 viewController
的右上角有一个 UIButton
,我想要的是当我单击该按钮时我想 show/hide slide menu
说 3 个项目...
当我单击每个项目时,它将转到不同的视图控制器。在我的项目中,我使用 AMSlideMenu 仅在一个 viewController 中显示幻灯片菜单。提前致谢。
iOS 中没有用于侧边菜单的内置控件。但是,您可以使用不同的开源库来实现您的目标。
查看以下库:
https://github.com/John-Lluch/SWRevealViewController
该库的详细教程:
Anuj跟着步骤走就对了-
- 创建一个
SideMenuViewController
,它是UIViewController
的子 class,根据要求使用故事板。 - 通过单击
UIButton
添加此SideMenuViewController
及其视图作为父视图控制器中的子视图控制器。 - 完成后,从父视图控制器中删除
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)