2017-09-18 10 views
0

私は初心者です。右側にサイドメニューを作りたいと思っていました。 3つの項目...私は各項目をクリックするとSwift 3.0の右側にサイドメニューを作成するには?

が、それは別のに行くと言うと、私は私がshow/hide slide menuにしたい、そのボタンをクリックしたときに

は、これまでのところ、私はviewControllerの右上側にUIButtonを持って、私が欲しいものですビューコントローラ。私のプロジェクトでは、AMSlideMenuを使用して1つのviewControllerにのみスライドメニューを表示しています。前もって感謝します。

+0

は、[ツアー]をご利用ください、SOにようこそ(https://stackoverflow.com/tour)と読む【お願いする方法](https://stackoverflow.com/help/how-to-ask)。 [提供されたマークダウンオプション](https:// stackoverflow)を使用して、コードを[最小、完全、および検証可能な例](https://stackoverflow.com/help/mcve)として提供し、質問を適切に書式設定することを忘れないでください。 com/editing-help)を参照してください。 –

+0

あなたのコードを共有してください。 1つのviewControllerに対してAMSlideMenuを実装する方法は? – NSIceCode

+0

@NSIceCodeいいえ私はそれを踏襲していないので、私はステップバイステップまたはコードが利用可能かどうかを確認する必要があります – anuj

答えて

8

Anujはちょうどsteps-

  1. をたどることが要件に応じてどのように見えるかをストーリーボード使用して、UIViewControllerのサブクラスであるSideMenuViewControllerを作成します。
  2. これをSideMenuViewControllerに追加し、そのビューを親ビューコントローラの子ビューコントローラとしてUIButtonクリックします。
  3. 完了したら、親ビューコントローラからSideMenuViewControllerを削除し、そのビューを親ビューから削除します。

すべてのビューコントローラで2と3を繰り返します。

更新されたコード:あなたのビューコントローラで

宣言 - あなたのbutton Clickedイベントで

var sideMenuViewController = SideMenuViewController() 
var isMenuOpened:Bool = false 
viewDidLoad

sideMenuViewController = storyboard!.instantiateViewController(withIdentifier: "SideMenuViewController") as! SideMenuViewController 
    sideMenuViewController.view.frame = UIScreen.main.bounds 

-

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

iOSにはサイドメニュー用の組み込みコントロールはありません。しかし、目的を達成するために、さまざまなオープンソースライブラリを使用することができます。

は、以下のライブラリを見てください:

https://github.com/John-Lluch/SWRevealViewController

このライブラリの詳細なチュートリアル:

  1. http://www.appcoda.com/ios-programming-sidebar-navigation-menu/

  2. http://www.raywenderlich.com/32054/how-to-create-a-slide-out-navigation-like-facebook-and-path

+0

ログインページはメニューではなく、スライドメニューがある2番目のビューコントローラ@NSIceCode – anuj

+0

これらのチュートリアルでは、どちらも最後にサンプルコードが提供されています。これは良いアイデアを提供し、必要に応じて使用できます。 – NSIceCode

+0

あなたの要求に応じてur側のサンプルを作成することができました@NSIceCode私はすべてあなたの助けを歓迎します – anuj

関連する問題