次のように画面の左側にメニュー数を表示したいので、これは新しいFacebookアプリケーションです。赤い四角で囲まれたバーをクリックすると、左側のリストビューが次のように表示されます。私のアプリケーションで正しい部分をスライドさせると、これを追加するために利用できるSDKがあります。助けてください。
5 に答える
見てください
https://github.com/BenHall/ios_facebook_style_navigation
あなたはそれをする多くの方法を見つけるでしょう。必要に応じて誰かを選択してください。
いいえ、これを行うために利用できるSDKはありません。これは2つの方法で行うことができます。
- 2つのUIViewControllerを使用する
- 2つのUIViewを使用する。
私はそれを使用し、うまく機能しているので、2番目のものをお勧めします。
最初のアプローチとして、github.comにいくつかの例とデモがあります。
2つのUIViewを使用してどのように実装したかについて簡単に説明します。
すべての通常のコンテンツはデフォルトのUIViewになり、スライドコントロールは2番目のビューになります。
デフォルトでは、通常のUIViewが表示され、スライダーUIViewは-x posにあり、必要に応じて(-200,0,200,320)のように設定します。
[表示/非表示]ボタンをクリックすると、フレームプロパティが変更され、通常のUIViewスライドの右側200ptとスライダーUIViewが画面に表示されます。
非表示/再表示するコードをいくつか示します。
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
view.frame = CGRectMake(250,
view.frame.origin.y,
view.frame.size.width,
view.frame.size.height);;
slideView.frame = CGRectMake(0, view.frame.origin.y, 250, view.frame.size.height);;
[UIView commitAnimations];
CGRectMakeのパラメーターは、必要に応じて何でもかまいません。
これを実装するには、UIViewのサブクラスを作成します。Facebookのように見せたい場合は、UITableViewを追加します。
アップデート:
いくつかの新しい実装を検索しているときに、1人の開発者によるこの概念に関する素晴らしい仕事を見つけました。誰かがこの機能を追加することを考えている場合は、一度これにアクセスする必要があります: MMDrawerController
ではごきげんよう
InteractiveSideMenuライブラリを使用できます。インタラクティブな開閉メニューをサポートしています。インタラクティブな開閉メニューと以下のカスタマイズをサポートしています。
- アニメーションの長さ
- 表示されるコンテンツの幅
- コンテンツスケール
- パラメータのカスタマイズで春のアニメーションを使用する
- アニメーションカーブなどのアニメーションオプション
サイドメニューを実装するためのサブクラスを作成するには、3つの基本的なViewControllerを使用する必要があります。
MenuContainerViewController
メニューおよびコンテンツビューのホストですMenuViewController
メニュービューのコンテナですMenuItemContentControlller
メニュー項目に対応するコンテンツのコンテナです
サイドメニューを設定するには、次の3つのことを行う必要があります。
- ベースの実装を提供し、
MenuViewController
それをmenuViewController
プロパティに評価します - メニューコンテンツの実装を提供し、コンテンツコントローラーの配列を
contentViewControllers
プロパティに割り当てます - 呼び出して初期コンテンツコントローラーを選択します
selectContentViewController(_ selectedContentVC: MenuItemContentViewController)
ホストコントローラーのセットアップ例を次に示します。
import InteractiveSideMenu
class HostViewController: MenuContainerViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.menuViewController = self.storyboard!.instantiateViewController(withIdentifier: "NavigationMenu") as! MenuViewController
self.contentViewControllers = contentControllers()
self.selectContentViewController(contentViewControllers.first!)
}
private func contentControllers() -> [MenuItemContentViewController] {
//here is instantiation of content view controllers
}
}
詳細については、こちらの例をご覧ください。
次のリンクをクリックして入手してくださいhttps://github.com/nverinaud/NVSlideMenuController