{"id":2641,"url":"https://github.com/dogo/AKSideMenu","last_synced_at":"2025-08-03T00:32:19.416Z","repository":{"id":9092227,"uuid":"60778166","full_name":"dogo/AKSideMenu","owner":"dogo","description":"Beautiful iOS side menu library with parallax effect. Written in Swift","archived":false,"fork":false,"pushed_at":"2024-10-28T19:14:11.000Z","size":3867,"stargazers_count":281,"open_issues_count":10,"forks_count":50,"subscribers_count":13,"default_branch":"develop","last_synced_at":"2024-11-30T13:04:04.064Z","etag":null,"topics":["aksidemenu","carthage","cocoapods","ios","parallax","sidemenu","spm","swift","swift-package-manager"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dogo.png","metadata":{"files":{"readme":"Readme.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-09T13:46:42.000Z","updated_at":"2024-10-28T19:14:13.000Z","dependencies_parsed_at":"2024-04-24T11:01:44.017Z","dependency_job_id":"ef8e68be-6acc-461f-a41f-9c0d615ccfec","html_url":"https://github.com/dogo/AKSideMenu","commit_stats":{"total_commits":147,"total_committers":13,"mean_commits":"11.307692307692308","dds":0.45578231292517,"last_synced_commit":"bfbf6369b985502acb6eabeab4d5275b5543005a"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogo%2FAKSideMenu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogo%2FAKSideMenu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogo%2FAKSideMenu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogo%2FAKSideMenu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dogo","download_url":"https://codeload.github.com/dogo/AKSideMenu/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228510755,"owners_count":17931760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aksidemenu","carthage","cocoapods","ios","parallax","sidemenu","spm","swift","swift-package-manager"],"created_at":"2024-01-05T20:16:19.034Z","updated_at":"2024-12-06T18:30:39.509Z","avatar_url":"https://github.com/dogo.png","language":"Swift","readme":"AKSideMenu\n============\n\n![Building](https://github.com/dogo/AKSideMenu/workflows/Building/badge.svg)\n[![Cocoapods](http://img.shields.io/cocoapods/v/AKSideMenu.svg)](http://cocoapods.org/?q=AKSideMenu)\n[![Pod License](http://img.shields.io/cocoapods/l/AKSideMenu.svg)](https://github.com/dogo/AKSideMenu/blob/master/LICENSE)\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n\nAKSideMenu is a double side menu library with parallax effect.\n\n\u003cimg src=\"https://github.com/dogo/AKSideMenu/raw/master/Screenshots/Screenshot.png\" alt=\"AKSideMenu Screenshot\" width=\"400\" height=\"568\" /\u003e\n\u003cimg src=\"https://github.com/dogo/AKSideMenu/raw/master/Screenshots/Demo.gif?2\" alt=\"AKSideMenu Screenshot\" width=\"320\" height=\"568\" /\u003e\n\n## Example Project\nSee the contained examples to get a sample of how `AKSideMenu` can easily be integrated in your project.\n\nBuild the examples from the `AKSideMenuExamples` directory.\n\n## Installation\n\n### [CocoaPods](https://cocoapods.org/).\n\nTo install, add the following line to your Podfile:\n```ruby\npod 'AKSideMenu'\n```\n \n### [Carthage](https://github.com/Carthage/Carthage).\n\nTo install, add the following line to your  Cartfile: \n \n```ruby\ngithub \"dogo/AKSideMenu\" \"1.4.5\"\n```\n\n## Easy to use\n\n### Simple implementation\nIn your AppDelegate, add the code below.\n\n```swift\nfunc application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -\u003e Bool {\n    self.window = UIWindow.init(frame: UIScreen.main.bounds)\n\n    // Create content and menu controllers\n    let navigationController: UINavigationController = UINavigationController.init(rootViewController: FirstViewController.init())\n    let leftMenuViewController: LeftMenuViewController = LeftMenuViewController.init()\n    let rightMenuViewController: RightMenuViewController = RightMenuViewController.init()\n\n    // Create side menu controller\n    let sideMenuViewController: AKSideMenu = AKSideMenu(contentViewController: navigationController, leftMenuViewController: leftMenuViewController, rightMenuViewController: rightMenuViewController)\n\n    // Make it a root controller\n    self.window!.rootViewController = sideMenuViewController\n\n    self.window!.backgroundColor = UIColor.white\n    self.window?.makeKeyAndVisible()\n    return true\n}        \n```\n### Storyboards Example\n\n1. Create a subclass of `AKSideMenu`. In this example we call it `RootViewController`.\n2. In the Storyboard designate the root view's owner as `RootViewController`.\n3. Add more view controllers to your Storyboard, and give them identifiers \"leftMenuViewController\", \"rightMenuViewController\" and \"contentViewController\". Note that in the new XCode the identifier is called \"Storyboard ID\" and can be found in the Identity inspector.\n4. Add a method `awakeFromNib` to `RootViewController.swift` with the following code:\n\n```swift\noverride public func awakeFromNib() {    \n    self.contentViewController = self.storyboard!.instantiateViewControllerWithIdentifier(\"contentViewController\")\n    self.leftMenuViewController = self.storyboard!.instantiateViewControllerWithIdentifier(\"leftMenuViewController\")\n    self.rightMenuViewController = self.storyboard!.instantiateViewControllerWithIdentifier(\"rightMenuViewController\")\n}\n```\n\nHere is an example of a delegate implementation. Please adapt the code to your context.\n\n```swift\n...\nsideMenuViewController.delegate = self\n...\n\n// MARK: - \u003cAKSideMenuDelegate\u003e\n\nopen func sideMenu(_ sideMenu: AKSideMenu, shouldRecognizeGesture recognizer: UIGestureRecognizer, simultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -\u003e Bool {\n    // return true to allow both gesture recognizers to recognize simultaneously. Returns false by default\n    return false\n}\n\nopen func sideMenu(_ sideMenu: AKSideMenu, gestureRecognizer: UIGestureRecognizer, shouldRequireFailureOf otherGestureRecognizer: UIGestureRecognizer) -\u003e Bool {\n    // return true or false based on your failure requirements. Returns false by default\n    return false\n}\n\nopen func sideMenu(_ sideMenu: AKSideMenu, gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer) -\u003e Bool {\n    // return true or false based on your failure requirements. Returns false by default\n    return false\n}\n\nopen func sideMenu(_ sideMenu: AKSideMenu, willShowMenuViewController menuViewController: UIViewController) {\n    print(\"willShowMenuViewController\")\n}\n\nopen func sideMenu(_ sideMenu: AKSideMenu, didShowMenuViewController menuViewController: UIViewController) {\n    print(\"didShowMenuViewController\")\n}\n\nopen func sideMenu(_ sideMenu: AKSideMenu, willHideMenuViewController menuViewController: UIViewController) {\n    print(\"willHideMenuViewController\")\n}\n\nopen func sideMenu(_ sideMenu: AKSideMenu, didHideMenuViewController menuViewController: UIViewController) {\n    print(\"didHideMenuViewController\")\n}\n```\n\nPresent the menu view controller:\n\n```swift\nself.sideMenuViewController!.presentLeftMenuViewController()\n```\n\nor\n\n```swift\nself.sideMenuViewController!.presentRightMenuViewController()\n```\n\nSwitch content view controllers:\n\n```swift\nself.sideMenuViewController!.setContentViewController(viewController, animated: true)\nself.sideMenuViewController!.hideMenuViewController()\n```\n\n### Properties\n```swift\npublic var animationDuration: TimeInterval\n```\nThe animation duration. Defaults to 0.35.\n```swift\npublic var backgroundImage: UIImage\n```\nThe content background image. Defaults to white.\n```swift\npublic var panGestureEnabled: Bool\n```\n\nEnables panGesture detection. Defaults to True.\n```swift\npublic var panFromEdge: Bool\n```\nEnables panGesture detection from the edge. Defaults to True.\n```swift\npublic var panMinimumOpenThreshold: Float\n```\nThe minimum pan gesture amount to open the side menu. Defaults to 60.0.\n```swift\npublic var interactivePopGestureRecognizerEnabled: Bool\n```\nEnables interactive pop gesture recognizer. Defaults to True.\n```swift\npublic var scaleContentView: Bool\n```\nTODO. Defaults to True.\n```swift\npublic var scaleBackgroundImageView: Bool\n```\nTODO. Defaults to False.\n```swift\npublic var scaleMenuView: Bool\n```\nTODO. Defaults to True.\n```swift\npublic let contentViewShadowEnabled: Bool\n```\nTODO. Defaults to False.\n```swift\npublic var contentViewShadowOffset: CGSize\n```\nTODO. Defaults to CGSizeZero.\n```swift\npublic var contentViewShadowOpacity: Float\n```\nTODO. Defaults to 0.4.\n```swift\npublic var contentViewShadowRadius: CGFloat\n```\nTODO. Defaults to 8.0.\n```swift\npublic var contentViewScaleValue: CGFloat\n```\nTODO. Defaults to 0.7.\n```swift\npublic var contentViewInLandscapeOffsetCenterX: CGFloat\n```\nTODO. Defaults to 30.0.\n```swift\npublic var contentViewInPortraitOffsetCenterX: CGFloat\n```\nTODO. Defaults to 30.0.\n```swift\npublic var parallaxMenuMinimumRelativeValue: CGFloat\n```\nTODO. Defaults to -15.\n```swift\npublic var parallaxMenuMaximumRelativeValue: CGFloat\n```\nTODO. Defaults to 15.\n```swift\npublic var parallaxContentMinimumRelativeValue: CGFloat\n```\nTODO. Defaults to -25.\n```swift\npublic var parallaxContentMaximumRelativeValue: CGFloat\n```\nTODO. Defaults to 25.\n```swift\npublic var menuViewControllerTransformation: CGAffineTransform\n```\nTODO. Defaults to nil.\n```swift\npublic var parallaxEnabled: Bool\n```\nTODO. Defaults to True.\n```swift\npublic var bouncesHorizontally: Bool\n```\nTODO. Defaults to True.\n```swift\npublic var menuPreferredStatusBarStyle: UIStatusBarStyle\n```\nPreferred UIStatusBarStyle when the menu is visible. Defaults to UIStatusBarStyle.default.\n```swift\npublic var menuPrefersStatusBarHidden: Bool\n```\nSets StatusBar hidden or not when the menu is visible. Defaults to False.\n```swift\npublic var backgroundTransformScale: CGFloat\n```\nSets the transform scale amount applied to the background imageview. Defaults to 1.7.\n```swift\npublic var panFromEdgeZoneWidth: CGFloat\n```\nSets the width of the pan gesture zone should be recognized. Defaults to 20.0.\n```swift\npublic var panGestureLeftEnabled: Bool\n```\nEnable or disable left pan gesture recognition. Defaults to True.\n```swift\npublic var panGestureRightEnabled: Bool\n```\nEnable or disable right pan gesture recognition. Defaults to True.\n\n## Collaboration\nI tried to build an easy way to use API, while being flexible enough for multiple variations, but I'm sure there are ways of improving and adding more features, so feel free to collaborate with ideas, issues and/or pull requests.\n\n## ARC\nAKSideMenu needs ARC.\n\n## Licence\nAKSideMenu is available under the MIT license.\n\n### Thanks to the original team\nRoman Efimov [@romaonthego](http://twitter.com/romaonthego)\n\nhttps://github.com/romaonthego/RESideMenu\n","funding_links":[],"categories":["UI"],"sub_categories":["Menu","Layout","Other free courses"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdogo%2FAKSideMenu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdogo%2FAKSideMenu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdogo%2FAKSideMenu/lists"}