{"id":2293,"url":"https://github.com/exyte/ActivityIndicatorView","last_synced_at":"2025-08-06T14:32:52.060Z","repository":{"id":40613337,"uuid":"248494113","full_name":"exyte/ActivityIndicatorView","owner":"exyte","description":"A number of preset loading indicators created with SwiftUI","archived":false,"fork":false,"pushed_at":"2024-07-10T06:06:42.000Z","size":3923,"stargazers_count":1464,"open_issues_count":0,"forks_count":90,"subscribers_count":22,"default_branch":"master","last_synced_at":"2024-12-04T23:04:03.656Z","etag":null,"topics":["swiftui","swiftui-components","swiftui-framework"],"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/exyte.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,"governance":null}},"created_at":"2020-03-19T12:11:30.000Z","updated_at":"2024-12-04T15:54:25.000Z","dependencies_parsed_at":"2023-11-28T08:26:20.101Z","dependency_job_id":"2e1e9c81-c5e3-46ea-95b8-98f565d1ffa3","html_url":"https://github.com/exyte/ActivityIndicatorView","commit_stats":{"total_commits":39,"total_committers":12,"mean_commits":3.25,"dds":0.7435897435897436,"last_synced_commit":"9970fd0bb7a05dad0b6566ae1f56937716686b24"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exyte%2FActivityIndicatorView","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exyte%2FActivityIndicatorView/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exyte%2FActivityIndicatorView/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exyte%2FActivityIndicatorView/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exyte","download_url":"https://codeload.github.com/exyte/ActivityIndicatorView/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228915455,"owners_count":17991409,"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":["swiftui","swiftui-components","swiftui-framework"],"created_at":"2024-01-05T20:16:10.052Z","updated_at":"2025-08-06T14:32:52.024Z","avatar_url":"https://github.com/exyte.png","language":"Swift","funding_links":[],"categories":["UI","Libs","Swift","Loading-Indicator","开源库精选","UI [🔝](#readme)"],"sub_categories":["Activity Indicator","UI","Content","Loading","加载动画"],"readme":"\u003ca href=\"https://exyte.com/\"\u003e\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/exyte/media/master/common/header-dark.png\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/exyte/media/master/common/header-light.png\"\u003e\u003c/picture\u003e\u003c/a\u003e\n\n\u003ca href=\"https://exyte.com/\"\u003e\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/exyte/media/master/common/our-site-dark.png\" width=\"80\" height=\"16\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/exyte/media/master/common/our-site-light.png\" width=\"80\" height=\"16\"\u003e\u003c/picture\u003e\u003c/a\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u003ca href=\"https://twitter.com/exyteHQ\"\u003e\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/exyte/media/master/common/twitter-dark.png\" width=\"74\" height=\"16\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/exyte/media/master/common/twitter-light.png\" width=\"74\" height=\"16\"\u003e\n\u003c/picture\u003e\u003c/a\u003e \u003ca href=\"https://exyte.com/contacts\"\u003e\u003cpicture\u003e\u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/exyte/media/master/common/get-in-touch-dark.png\" width=\"128\" height=\"24\" align=\"right\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/exyte/media/master/common/get-in-touch-light.png\" width=\"128\" height=\"24\" align=\"right\"\u003e\u003c/picture\u003e\u003c/a\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/exyte/media/master/ActivityIndicatorView/demo.gif\" width=\"480\" /\u003e\n\n\u003cp\u003e\u003ch1 align=\"left\"\u003eActivityIndicatorView\u003c/h1\u003e\u003c/p\u003e\n\n\u003cp\u003e\u003ch4\u003eA number of preset loading indicators created with SwiftUI\u003c/h4\u003e\u003c/p\u003e\n\n![](https://img.shields.io/github/v/tag/exyte/ActivityIndicatorView?label=Version)\n[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fexyte%2FActivityIndicatorView%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/exyte/ActivityIndicatorView)\n[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2Fexyte%2FActivityIndicatorView%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/exyte/ActivityIndicatorView)\n[![SPM](https://img.shields.io/badge/SPM-Compatible-brightgreen.svg)](https://swiftpackageindex.com/exyte/ActivityIndicatorView)\n[![Cocoapods](https://img.shields.io/badge/Cocoapods-Deprecated%20after%201.1.1-yellow.svg)](https://cocoapods.org/pods/ActivityIndicatorView)\n[![License: MIT](https://img.shields.io/badge/License-MIT-black.svg)](https://opensource.org/licenses/MIT)\n\n# Usage\n\nCreate an indicator like this:\n   ```swift\n   ActivityIndicatorView(isVisible: $showLoadingIndicator, type: .default)\n   ```\n   where  \n   `showLoadingIndicator` - bool value you may change to display or hide the indicator  \n   `type` - value from `ActivityIndicatorView.IndicatorType` enum  \n\nYou may alter it with standard SwiftUI means like this: \n   ```swift\n   ActivityIndicatorView(isVisible: $showLoadingIndicator, type: .default)\n        .frame(width: 50.0, height: 50.0)\n        .foregroundColor(.red)\n   ```\nOr specify another indicator type:\n\n   ```swift\n   ActivityIndicatorView(isVisible: $showLoadingIndicator, type: .growingArc(.red, lineWidth: 4))\n       .frame(width: 50.0, height: 50.0)\n   ```\n\n### Indicator types\nEach indicator type has a number of parameters that have reasonable defaults. You can change them as you see fit, but it is advised to not set them too high or too low.\n\n`default` - iOS UIActivityIndicator style  \n```swift\n.default(count: 8)\n```\n`arcs`    \n```swift\n.arcs(count: 3, lineWidth: 2)\n```\n`rotatingDots`    \n```swift\n.rotatingDots(count: 5)\n```\n`flickeringDots`    \n```swift\n.flickeringDots(count: 8)\n```\n`scalingDots`     \n```swift\n.scalingDots(count: 3, inset: 2)\n``` \n`opacityDots`  \n```swift\n.opacityDots(count: 3, inset: 4)\n``` \n`equalizer`  \n```swift\n.equalizer(count: 5)\n```\n`growingArc` - add custom color for growing Arc, the default value is `Color.black`      \n```swift\n.growingArc(.red, lineWidth: 4)\n```\n`growingCircle` - no parameters   \n`gradient` - circle with angular gradient border stroke, pass colors like this:    \n```swift\n.gradient([.white, .red], lineWidth: 4)\n```  \n\n## Examples\n\nTo try ActivityIndicatorView examples:\n- Clone the repo `https://github.com/exyte/ActivityIndicatorView.git`\n- Open `ActivityIndicatorViewExample.xcodeproj`\n- Try it!\n\n## Installation\n\n### [Swift Package Manager](https://swift.org/package-manager/)\n\n```swift\ndependencies: [\n    .package(url: \"https://github.com/exyte/ActivityIndicatorView.git\")\n]\n```\n\n## Requirements\n\n* iOS 13+ / watchOS 6+ / tvOS 13+ / macOS 10.15+\n* Xcode 11+\n\n## Our other open source SwiftUI libraries\n[PopupView](https://github.com/exyte/PopupView) - Toasts and popups library    \n[AnchoredPopup](https://github.com/exyte/AnchoredPopup) - Anchored Popup grows \"out\" of a trigger view (similar to Hero animation)   \n[Grid](https://github.com/exyte/Grid) - The most powerful Grid container    \n[ScalingHeaderScrollView](https://github.com/exyte/ScalingHeaderScrollView) - A scroll view with a sticky header which shrinks as you scroll    \n[AnimatedTabBar](https://github.com/exyte/AnimatedTabBar) - A tabbar with a number of preset animations   \n[MediaPicker](https://github.com/exyte/mediapicker) - Customizable media picker     \n[Chat](https://github.com/exyte/chat) - Chat UI framework with fully customizable message cells, input view, and a built-in media picker  \n[OpenAI](https://github.com/exyte/OpenAI) Wrapper lib for [OpenAI REST API](https://platform.openai.com/docs/api-reference/introduction)    \n[AnimatedGradient](https://github.com/exyte/AnimatedGradient) - Animated linear gradient     \n[ConcentricOnboarding](https://github.com/exyte/ConcentricOnboarding) - Animated onboarding flow    \n[FloatingButton](https://github.com/exyte/FloatingButton) - Floating button menu    \n[ProgressIndicatorView](https://github.com/exyte/ProgressIndicatorView) - A number of animated progress indicators    \n[FlagAndCountryCode](https://github.com/exyte/FlagAndCountryCode) - Phone codes and flags for every country    \n[SVGView](https://github.com/exyte/SVGView) - SVG parser    \n[LiquidSwipe](https://github.com/exyte/LiquidSwipe) - Liquid navigation animation    \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexyte%2FActivityIndicatorView","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexyte%2FActivityIndicatorView","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexyte%2FActivityIndicatorView/lists"}