For application targets that do not support embedded frameworks, such as iOS 7, SideMenu can be integrated by including source files from the SideMenu folder directly, optionally wrapping the top-level types into struct SideMenu to simulate a namespace. Yes, this sucks.
Add SideMenu as a submodule by opening the Terminal, cd-ing into your top-level project directory, and entering the command git submodule add https://github.com/yalantis/Side-Menu.iOS.git
Open the SideMenu folder, and drag SideMenu.xcodeproj into the file navigator of your app project.
In Xcode, navigate to the target configuration window by clicking on the blue project icon, and selecting the application target under the "Targets" heading in the sidebar.
Ensure that the deployment target of SideMenu.framework matches that of the application target.
In the tab bar at the top of that window, open the "Build Phases" panel.
Expand the "Target Dependencies" group, and add SideMenu.framework.
Expand the "Link Binary With Libraries" group, and add SideMenu.framework
Click on the + button at the top left of the panel and select "New Copy Files Phase". Rename this new phase to "Copy Frameworks", set the "Destination" to "Frameworks", and add SideMenu.framework.
Usage
Import SideMenu module
importSideMenu
Adopt the Menu protocol in your menu view controller, e.g.
classMyFancyMenuViewController: UIViewController, Menu {
@IBOutletvar menuItems = [UIView] ()
}
Set preferredContentSize in menu view controller to specify the desired menu width
In content view controller store an animator, that will animate our menu.
importSideMenuclassContentViewController: UIViewController {
var menuAnimator : MenuTransitionAnimator!
}
Initialize an animator for presentation with parameters
If you want, for example, to dismiss your menu when a tap outside menu takes place, you should pass false to shouldPassEventsOutsideMenu flag and assign a tappedOutsideHandler.In fact, you are free to do whatever you want when a tap outside menu occurs or, if you want to have access to your content view controller, just pass true and assign tappedOutsideHandler to nil.
It's possible to specify menu position starting from version 2.0.2. To position menu on the left side you should pass .left to position in MenuTransitionAnimator init. To position menu on the right side - pass .right accordingly.
Implement class of UIViewControllerTransitioningDelegate that will return our menuAnimator from method animationControllerForPresentedController and assign it to transitioningDelegate of menu view controller(Don't forget to set .Custom modal presentation style). To dismiss menu you should return MenuTransitionAnimator(mode: .Dismissal) from animationControllerForDismissedController method.
We’d be really happy if you sent us links to your projects where you use our component. Just send an email to [email protected] And do let us know if you have any questions or suggestion regarding the animation.
P.S. We’re going to publish more awesomeness wrapped in code and a tutorial on how to make UI for iOS (Android) better than better. Stay tuned!
请发表评论