{"id":18678110,"url":"https://github.com/lovemo/smkfoldingtabbar","last_synced_at":"2025-04-12T02:39:31.265Z","repository":{"id":62454059,"uuid":"90581220","full_name":"lovemo/SMKFoldingTabBar","owner":"lovemo","description":"SMKFoldingTabBar - An Awesome Folding Custom View","archived":false,"fork":false,"pushed_at":"2017-09-21T12:11:30.000Z","size":502,"stargazers_count":14,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T02:39:23.117Z","etag":null,"topics":["animation","fold","folding","foldingtab","foldingtabbar","ios","objective-c","tab","tabbar"],"latest_commit_sha":null,"homepage":"","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/lovemo.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":"2017-05-08T03:07:44.000Z","updated_at":"2019-10-22T01:21:41.000Z","dependencies_parsed_at":"2022-11-02T00:01:11.729Z","dependency_job_id":null,"html_url":"https://github.com/lovemo/SMKFoldingTabBar","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovemo%2FSMKFoldingTabBar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovemo%2FSMKFoldingTabBar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovemo%2FSMKFoldingTabBar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovemo%2FSMKFoldingTabBar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lovemo","download_url":"https://codeload.github.com/lovemo/SMKFoldingTabBar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248507337,"owners_count":21115576,"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":["animation","fold","folding","foldingtab","foldingtabbar","ios","objective-c","tab","tabbar"],"created_at":"2024-11-07T09:36:02.771Z","updated_at":"2025-04-12T02:39:31.239Z","avatar_url":"https://github.com/lovemo.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SMKFoldingTabBar\nSMKFoldingTabBar - An Awesome Folding Custom View\n\n![image](https://github.com/lovemo/SMKFoldingTabBar/raw/master/demo.gif)\n\n---\n\n#### usage:\n```ruby\n  pod 'SMKFoldingTabBar'\n```\n\n### Code\n```objc\ntypedef struct {\n    \n    // 按钮收缩动画周期\n    CFTimeInterval animationForCenterButtonCollapseDuration;\n    \n    // 按钮展开动画周期\n    CFTimeInterval animationForCenterButtonExpandDuration;\n    \n    // 其他按钮展开动画周期\n    CFTimeInterval animationForExtraItemShowDuration;\n    \n    // 其他按钮缩放动画周期\n    CFTimeInterval animationForExtraItemScaleDuration;\n    \n    // 其他按钮抖动动画周期\n    CFTimeInterval animationForExtraItemRotationDuration;\n\n} SMKAnimationParameters;\n\n\n@class SMKFoldingTabBar;\n\nNS_ASSUME_NONNULL_BEGIN\n\n@protocol SMKFoldingTabBarDelegate \u003cNSObject\u003e\n\n@optional\n\n- (void)tabBarWillCollapse:(SMKFoldingTabBar *)tabBar;\n- (void)tabBarWillExpand:(SMKFoldingTabBar *)tabBar;\n\n- (void)tabBarDidCollapse:(SMKFoldingTabBar *)tabBar;\n- (void)tabBarDidExpand:(SMKFoldingTabBar *)tabBar;\n\n- (void)tabBarDidSelectCenterItem:(SMKFoldingTabBar *)tabBar;\n\n- (void)tabBar:(SMKFoldingTabBar *)tabBar didSelectLeftItemAtIndex:(NSUInteger)index;\n- (void)tabBar:(SMKFoldingTabBar *)tabBar didSelectRightItemAtIndex:(NSUInteger)index;\n\n\n@end\n\ntypedef NS_ENUM(NSUInteger, SMKFoldingTabBarState) {\n    SMKFoldingTabBarStateExpanded,\n    SMKFoldingTabBarStateCollapsed\n};\n\n\n@interface SMKFoldingTabBar : UIView\n\n// ......\n\n@end\n```\n\n### Demo\n```objc\n    SMKFoldingTabBar *foldingTabBar = [SMKFoldingTabBar foldingTabBar];\n    [self.view addSubview:foldingTabBar];\n    [foldingTabBar mas_makeConstraints:^(MASConstraintMaker *make) {\n        make.left.right.mas_equalTo(self.view);\n        make.height.mas_equalTo(49);\n        make.centerY.mas_equalTo(self.view).multipliedBy(1.5);\n    }];\n    \n    foldingTabBar.animationParameters = (SMKAnimationParameters) {\n        .animationForCenterButtonExpandDuration = 0.4,\n        .animationForCenterButtonCollapseDuration = 0.4,\n        .animationForExtraItemShowDuration = 0.3,\n    };\n    \n    foldingTabBar.leftItemLength = foldingTabBar.rightItemLength\n                                 = foldingTabBar.leftButtonHeight\n                                 = foldingTabBar.rightButtonHeight\n                                 = 36;\n    foldingTabBar.leftImagesArray = @[\n                                      @\"new_umsocial_sina\",\n                                      @\"new_umsocial_wechat\",\n                                      @\"new_umsocial_wechat_timeline\"\n                                      ];\n    foldingTabBar.rightImagesArray = @[\n                                       @\"new_umsocial_qq\",\n                                       @\"new_umsocial_qzone\",\n                                       @\"new_umsocial_wechat_favorite\"\n                                       ];\n    \n    foldingTabBar.centerButtonText = @\"分享\";\n    foldingTabBar.centerButtonTextFont = [UIFont systemFontOfSize:16];\n    foldingTabBar.centerButtonBackColor = [UIColor blackColor];\n    foldingTabBar.centerButtonTextColor = [UIColor colorWithRed:255/255.f \n                                                   green:208/255.f \n                                                   blue:2/255.f \n                                                   alpha:1.f];\n    foldingTabBar.centerButtonWidth = 454 * 0.5;\n    foldingTabBar.isRoundCenterButton = YES;\n    foldingTabBar.centerButtonHeight = 44;\n    foldingTabBar.leftBackColor = foldingTabBar.rightBackColor = [UIColor blackColor];\n    foldingTabBar.isRoundExtraItem = YES;\n    \n    NSLog(@\"%zd\", foldingTabBar.state);\n    \n    [foldingTabBar setDidSelectCenterItemBlock:^(UIButton * _Nonnull button) {\n        self.showTextLabel.text = [NSString stringWithFormat:@\"我是中心按钮\"];\n    }];\n    \n    [foldingTabBar setDidSelectLeftItemBlock:^(NSUInteger index) {\n        self.showTextLabel.text = [NSString stringWithFormat:@\"我是左边第 %zd 个\", index];\n        NSLog(@\"%zd\", index);\n    }];\n    \n    [foldingTabBar setDidSelectRightItemBlock:^(NSUInteger index) {\n        self.showTextLabel.text = [NSString stringWithFormat:@\"我是右边第 %zd 个\", index];\n        NSLog(@\"%zd\", index);\n    }];\n\n```\n\n---\n\n### Contributing to SMKFoldingTabBar\nWelcome to [report Issues](https://github.com/lovemo/SMKFoldingTabBar/issues) or [pull requests](https://github.com/lovemo/SMKFoldingTabBar/pulls) to SMKFoldingTabBar.\n\n## License\n\nSMKFoldingTabBar is released under the MIT license. See LICENSE for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flovemo%2Fsmkfoldingtabbar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flovemo%2Fsmkfoldingtabbar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flovemo%2Fsmkfoldingtabbar/lists"}