{"id":13769477,"url":"https://github.com/Ahmadalsofi/SOTabBar","last_synced_at":"2025-05-11T02:32:45.578Z","repository":{"id":50772630,"uuid":"231611344","full_name":"Ahmadalsofi/SOTabBar","owner":"Ahmadalsofi","description":"Light way to add Fancy bottom bar 📲","archived":false,"fork":false,"pushed_at":"2021-05-30T09:21:45.000Z","size":7614,"stargazers_count":675,"open_issues_count":17,"forks_count":71,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-15T18:17:46.017Z","etag":null,"topics":["animation","bottombar","custom","fancy","ios","sotabbar","swift","tabbar","tabbarcontroller"],"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/Ahmadalsofi.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":"2020-01-03T15:07:25.000Z","updated_at":"2025-03-11T13:23:25.000Z","dependencies_parsed_at":"2022-08-12T22:11:11.388Z","dependency_job_id":null,"html_url":"https://github.com/Ahmadalsofi/SOTabBar","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmadalsofi%2FSOTabBar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmadalsofi%2FSOTabBar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmadalsofi%2FSOTabBar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmadalsofi%2FSOTabBar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ahmadalsofi","download_url":"https://codeload.github.com/Ahmadalsofi/SOTabBar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253507148,"owners_count":21919158,"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","bottombar","custom","fancy","ios","sotabbar","swift","tabbar","tabbarcontroller"],"created_at":"2024-08-03T17:00:26.768Z","updated_at":"2025-05-11T02:32:42.149Z","avatar_url":"https://github.com/Ahmadalsofi.png","language":"Swift","funding_links":[],"categories":["TabBar","Swift"],"sub_categories":[],"readme":"\n \u003ch1 align=\"center\"\u003e SOTabBar \u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://travis-ci.org/Ahmadalsofi/SOTabBar\"\u003e\n        \u003cimg src=\"https://img.shields.io/travis/Ahmadalsofi/SOTabBar.svg?style=flat\" /\u003e\n    \u003c/a\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Swift-4 | 5-orange.svg?style=flat\" /\u003e\n    \u003ca href=\"https://cocoapods.org/pods/SOTabBar\"\u003e\n        \u003cimg src=\"https://img.shields.io/cocoapods/v/SOTabBar.svg?style=flat\" alt=\"CocoaPods\" /\u003e\n    \u003c/a\u003e\n\t\u003ca href=\"https://cocoapods.org/pods/SOTabBar\"\u003e\n        \u003cimg src=\"https://img.shields.io/cocoapods/p/SOTabBar.svg?style=flat\" alt=\"Platforms\" /\u003e\n    \u003c/a\u003e\n\t\u003ca href=\"https://github.com/Carthage/Carthage\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat\" /\u003e\n    \u003c/a\u003e\n  \t\u003ca href=\"https://cocoapods.org/pods/SOTabBar\"\u003e\n        \u003cimg src=\"https://img.shields.io/cocoapods/l/SOTabBar.svg?style=flat\" /\u003e\n    \u003c/a\u003e\n\t\u003ca href=\"https://github.com/ahmadalsofi/sotabbar/releases\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/release/ahmadalsofi/SOTabBar.svg\" /\u003e\n    \u003c/a\u003e\n  \u003ca href=\"https://github.com/Ahmadalsofi/SOTabBar/issues\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/issues-raw/ahmadalsofi/sotabbar\" /\u003e\n    \u003c/a\u003e\n  \u003ca href=\"https://github.com/Ahmadalsofi/SOTabBar/releases\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/release-date/ahmadalsofi/sotabbar\" /\u003e\n    \u003c/a\u003e\n\t\u003cbr\u003e\n\t\u003cbr\u003e\n\t\u003cbr\u003e\n\t\u003cbr\u003e\n    \u003cimg src=\"Screenshots/headerGif.gif\" width=\"520\" height=\"216\"/\u003e\n\u003c/p\u003e\n\n\n---\n\u003ca href=\"https://github.motakasoft.com/trending/?d=2020-01-08\u0026l=swift\"\u003e\n\u003cp align=\"center\"\u003e\u003cimg src=\"Screenshots/trending.png?raw=true\"/\u003e\u003c/p\u003e\n\u003c/a\u003e\n\n---\n\n## 📋 Requirements\nSOTabBar requires iOS 9.3 or above, and is compatibile with Swift 4/5.\n\n## 📲 Installation\n### CocoaPods\nSOTabBar is available through [CocoaPods](http://cocoapods.org):\n\n```ruby\npod 'SOTabBar'\n```\n\n### Carthage\nSOTabBar is also available through [Carthage](https://github.com/Carthage/Carthage):\n\n```ogdl\ngithub \"Ahmadalsofi/SOTabBar\"\n```\n\n\n## 🚀 Usage\n\n### The Basics\n1) Set up your view controller with the an array of view controllers that you want to appear.\n2) Make  your main View Controller subclass from SOTabBarViewController.\n3) return the array of your ViewControllers: \n\n```swift\nimport UIKit\nimport SOTabBar\nclass MainViewController: SOTabBarViewController {\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        \n        let firstVC = UIStoryboard(name: \"Main\", bundle: nil).instantiateViewController(withIdentifier: \"First_ID\")\n        let secondVC = UIStoryboard(name: \"Main\", bundle: nil).instantiateViewController(withIdentifier: \"Second_ID\")\n       \n        firstVC.tabBarItem = UITabBarItem(title: \"Home\", image: UIImage(named: \"firstImage\"), selectedImage: UIImage(named: \"firstSelectedImage\"))\n        secondVC.tabBarItem = UITabBarItem(title: \"Chat\", image: UIImage(named: \"secondImage\"), selectedImage: UIImage(named: \"secondSelectedImage\"))\n\t\n        viewControllers = [firstVC, secondVC]\n    }\n}\n```\n4) you can trigger your tab bar action by override the following function in your MainViewController\n```swift\n override func soTabBar(_ tabBar: SOTabBarView, didSelectTabAt index: Int) {\n      print(\"did Tapped On \\(index)\")\n  }\n```\n\n\n## 🎨 Customization\n**You should set your customization before return the array of the viewcontrollers**\n\n```swift\nclass MainViewController: SOTabBarViewController {\n\n    override func loadView() {\n        super.loadView()\n\t    // SOTabBarSetting.propertyToCustomize = value\n    }\n}\n```\n#### tabBarHeight\n```swift\n    SOTabBarSetting.tabBarHeight = 100.0\n```\n\u003cimg src=\"Screenshots/tabBarHeight.png\" width=\"220\" height=\"388\"/\u003e\n\n#### tabBarTintColor\n```swift\n    SOTabBarSetting.tabBarTintColor = UIColor.red\n```\n\u003cimg src=\"Screenshots/tabBarTintColor.png\" width=\"220\" height=\"388\"/\u003e\n\n#### tabBarBackground\n```swift\n    SOTabBarSetting.tabBarBackground = UIColor.purple\n```\n\u003cimg src=\"Screenshots/tabBarBackground.png\" width=\"220\" height=\"388\"/\u003e\n\n#### tabBarCircleSize\n```swift\n    SOTabBarSetting.tabBarCircleSize = CGSize(width: 50.0, height: 50.0)\n  \t // or \n    SOTabBarSetting.tabBarCircleSize = CGSize(width: 80.0, height: 80.0)\n```\n\u003cimg src=\"Screenshots/tabBarCircleSize_50.png\" width=\"220\" height=\"388\"/\u003e \u003cimg src=\"Screenshots/tabBarCircleSize_80.png\" width=\"220\" height=\"388\"/\u003e\n\n#### tabBarSizeImage\n```swift\n    SOTabBarSetting.tabBarSizeImage = CGSize(width: 40.0, height: 40.0)\n```\n\u003cimg src=\"Screenshots/tabBarSizeImage_40.png\" width=\"220\" height=\"388\"/\u003e\n\n#### tabBarShadowColor\n```swift\n    SOTabBarSetting.tabBarShadowColor = UIColor.red.cgcolor\n```\n\u003cimg src=\"Screenshots/tabBarShadowColor_red.png\" width=\"220\" height=\"388\"/\u003e\n\n#### tabBarSizeSelectedImage\n```swift\n    SOTabBarSetting.tabBarSizeSelectedImage = CGSize(width: 40.0, height: 40.0)\n```\n\u003cimg src=\"Screenshots/tabBarSizeSelectedImage_40.png\" width=\"220\" height=\"388\"/\u003e\n\n#### tabBarAnimationDurationTime\n```swift\n    SOTabBarSetting.tabBarAnimationDurationTime = 2\n```\n\u003cimg src=\"Screenshots/tabBarAnimationDurationTime_2.gif\" width=\"240\" height=\"104\"/\u003e\n\n\n## 👨🏻‍💻 Author\n- Created by [Ahmad AlSofi](https://www.linkedin.com/in/ahmadalsofi/)\n- Ahmadalsofi, alsofiahmad@yahoo.com\n\n## ❤️ Contributing\nBug reports and pull requests are welcome on GitHub\n\n## 👮🏻‍♂️ License\nThe library is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAhmadalsofi%2FSOTabBar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAhmadalsofi%2FSOTabBar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAhmadalsofi%2FSOTabBar/lists"}