{"id":2625,"url":"https://github.com/bestwnh/IGLDropDownMenu","last_synced_at":"2025-08-03T00:32:06.035Z","repository":{"id":20219281,"uuid":"23490969","full_name":"bestwnh/IGLDropDownMenu","owner":"bestwnh","description":"An iOS drop down menu with pretty animation and easy to customize.","archived":false,"fork":false,"pushed_at":"2020-09-07T21:35:26.000Z","size":3691,"stargazers_count":1225,"open_issues_count":7,"forks_count":160,"subscribers_count":43,"default_branch":"master","last_synced_at":"2025-06-26T09:04:56.627Z","etag":null,"topics":["animation","customize","dropdown","dropdownmenu","easy","ios","menu","objective-c","pretty"],"latest_commit_sha":null,"homepage":"https://www.cocoacontrols.com/controls/igldropdownmenu","language":"Objective-C","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/bestwnh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-30T12:09:05.000Z","updated_at":"2025-04-27T02:01:15.000Z","dependencies_parsed_at":"2022-08-20T20:50:39.032Z","dependency_job_id":null,"html_url":"https://github.com/bestwnh/IGLDropDownMenu","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/bestwnh/IGLDropDownMenu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bestwnh%2FIGLDropDownMenu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bestwnh%2FIGLDropDownMenu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bestwnh%2FIGLDropDownMenu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bestwnh%2FIGLDropDownMenu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bestwnh","download_url":"https://codeload.github.com/bestwnh/IGLDropDownMenu/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bestwnh%2FIGLDropDownMenu/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267447260,"owners_count":24088567,"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","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["animation","customize","dropdown","dropdownmenu","easy","ios","menu","objective-c","pretty"],"created_at":"2024-01-05T20:16:18.654Z","updated_at":"2025-08-03T00:32:05.260Z","avatar_url":"https://github.com/bestwnh.png","language":"Objective-C","funding_links":[],"categories":["UI"],"sub_categories":["Menu","Layout","Other free courses"],"readme":"IGLDropDownMenu\n===============\n\nAn iOS drop down menu with pretty animation.\n\n## Screenshot\n\n[![](https://raw.githubusercontent.com/bestwnh/IGLDropDownMenu/master/Screens/IGLDropDownMenuDemo.gif)](https://raw.githubusercontent.com/bestwnh/IGLDropDownMenu/master/Screens/IGLDropDownMenuDemo.gif)\n\n## How To Use\n\n#### Use CocoaPods:\npod 'IGLDropDownMenu'\n\n#### Manual Install:\nJust drap the files in folder IGLDropDownMenu to your project.\n\n####*!Try the demo. It's really helpful!*\n\n### Sample Code\n\n1. Create your `IGLDropDownItem` array and set up\n    ```objc\n    NSMutableArray *dropdownItems = [[NSMutableArray alloc] init];\n    IGLDropDownItem *item = [[IGLDropDownItem alloc] init];\n    [item setIconImage:[UIImage imageNamed:@\"icon.png\"]];\n    [item setText:@\"title\"];\n    [dropdownItems addObject:item];\n    ```\n    \n2. Create your `IGLDropDownMenu` and set the up the parameter name `dropDownItems`\n    ```objc\n    IGLDropDownMenu *dropDownMenu = [[IGLDropDownMenu alloc] init];\n    [dropDownMenu setFrame:CGRectMake(0, 0, 200, 45)];\n    dropDownMenu.menuText = @\"Choose Weather\";\n    dropDownMenu.menuIconImage = [UIImage imageNamed:@\"chooserIcon.png\"];\n    dropDownMenu.paddingLeft = 15;  // padding left for the content of the button\n    ```\n\n3. modify the params of `IGLDropDownMenu`\n    ```objc\n    dropDownMenu.type = IGLDropDownMenuTypeStack;\n    dropDownMenu.gutterY = 5;\n    dropDownMenu.itemAnimationDelay = 0.1;\n    dropDownMenu.rotate = IGLDropDownMenuRotateRandom;\n    ```\n\n4. Call the `reloadView` method (Very Important!)\n    ```objc\n    // every time you change the params you should call reloadView method\n    [dropDownMenu reloadView];\n    ```\n\n### Parameters\n\nThese are just some of the parameters you can use, you can find more(or make more) in the code.\n\n####*For `IGLDropDownMenu`*\n\n- `animationDuration` set the duration(s) of the animation in second\n- `animationOption` set the UIViewAnimationOptions for the animation\n- `itemAnimationDelay` set the delay(s) before each of item start to animate\n\n- `direction` set the direction when the menu expand\n\u003e - `IGLDropDownMenuDirectionDown` default value, expand downward\n\u003e - `IGLDropDownMenuDirectionUp` expand upward\n\n- `rotate` set the rotate style when the menu on expand\n\u003e - `IGLDropDownMenuRotateNone` default value, for no rotate\n\u003e - `IGLDropDownMenuRotateLeft` rotate to left on expand\n\u003e - `IGLDropDownMenuRotateRight` rotate to right on expand\n\u003e - `IGLDropDownMenuRotateRandom` rotate random on expand every single time\n\n- `type` set the menu type (remember when you set the type to SlidingIn* you can't have the rotate type at the same time.)\n\u003e - `IGLDropDownMenuTypeNormal` default value, item will hide behind the menu button on fold\n\u003e - `IGLDropDownMenuTypeStack` item will hide behind the menu button and make a stack like look\n\u003e - `IGLDropDownMenuTypeSlidingInBoth` item will slide in and out from both sides\n\u003e - `IGLDropDownMenuTypeSlidingInFromLeft` item will slide in from left\n\u003e - `IGLDropDownMenuTypeSlidingInFromRight` item will slide in from right\n\u003e - `IGLDropDownMenuTypeFlipVertical` item will flip vertical\n\u003e - `IGLDropDownMenuTypeFlipFromLeft` item will flip from left\n\u003e - `IGLDropDownMenuTypeFlipFromRight` item will flip from right\n\n- `slidingInOffset` set the offset value for the items slide in and out\n- `gutterY` set the Y gutter between items\n- `alphaOnFold` set the item alpha value when menu on fold, only use this when the style won't fit your mind\n- `flipWhenToggleView` when you set this to true, the menu button will flip up when you click\n- `useSpringAnimation` use the spring animation for iOS7 or higher version, default is true\n- `menuButtonStatic` keeps the menu button static regardless of selected menu item, default is NO\n\n####*For `IGLDropDownItem`*\n\n- `iconImage` set the icon image for the item\n- `text` set the text string for the item\n- `textLabel` for you to adjust the text label style\n- `object` you can store your custom item in this property\n- `index` the item index\n- `paddingLeft` the left padding of the image view or only text\n- `showBackgroundShadow` you can hide the drop down shadow with this property\n- `backgroundColor` you can change the background color with this property\n\nRemember the `menuButton` in `IGLDropDownMenu` is also an `IGLDropDownItem`.\n\n### CustomView\n\nIf you want to control the view by yourself, you can use the `initWithMenuButtonCustomView` of `IGLDropDownMenu` and `initWithCustomView` of `IGLDropDownItem`.\nIf you use customView, the customView will auto set `userInteractionEnabled = NO` and the menu `menuButtonStatic = YES` and some style parameters will be invalid. You need to handle it yourself. I make a customView in the demo, try it!\n\n### Delegate\n\n####*For `IGLDropDownMenu`*\n- `- (void)dropDownMenu:(IGLDropDownMenu*)dropDownMenu selectedItemAtIndex:(NSInteger)index;`\n- `- (void)dropDownMenu:(IGLDropDownMenu *)dropDownMenu expandingChanged:(BOOL)isExpanding;`\n\n## Requirements\n\n- target platform: \u003e=iOS 6.0 (I never test the version below 6.0, maybe you can make some try and tell me.)\n- ARC\n\n## Thanks\n\nThis drop-down menu idea is come from [here](http://tympanus.net/Development/SimpleDropDownEffects/index.html), I found this demo one day and just implement it on iOS.\n\n## License\n\nThe MIT License (MIT)\n\nCopyright (c) 2014 Galvin Li\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbestwnh%2FIGLDropDownMenu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbestwnh%2FIGLDropDownMenu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbestwnh%2FIGLDropDownMenu/lists"}