我是初学者,我想在右侧创建一个侧边菜单。
到目前为止,我在
UIButton
的右上角有一个 viewController
,我想要的是当我单击该按钮时,我想要 show/hide slide menu
说 3 个项目…
当我单击每个项目时,它将转到不同的视图控制器。在我的项目中,我使用 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
点击事件中 -
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
该库的详细教程:
示例:
extension SideMenuVC: UITableViewDelegate, UITableViewDataSource{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "SideMenuTVCell", for: indexPath) as! SideMenuTVCell
return cell
}
}