{"id":2262,"url":"https://github.com/iwasrobbed/RPCircularProgress","last_synced_at":"2025-08-02T23:32:42.869Z","repository":{"id":56933892,"uuid":"55697090","full_name":"iwasrobbed/RPCircularProgress","owner":"iwasrobbed","description":"(Swift) Circular progress UIView subclass with UIProgressView properties","archived":true,"fork":false,"pushed_at":"2020-03-27T11:52:40.000Z","size":230,"stargazers_count":256,"open_issues_count":5,"forks_count":54,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-07-22T21:48:58.299Z","etag":null,"topics":["bar","chart","circle","ios","pie","progress","ring","swift"],"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/iwasrobbed.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2016-04-07T13:32:18.000Z","updated_at":"2025-06-30T20:30:15.000Z","dependencies_parsed_at":"2022-08-21T00:40:27.897Z","dependency_job_id":null,"html_url":"https://github.com/iwasrobbed/RPCircularProgress","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/iwasrobbed/RPCircularProgress","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwasrobbed%2FRPCircularProgress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwasrobbed%2FRPCircularProgress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwasrobbed%2FRPCircularProgress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwasrobbed%2FRPCircularProgress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iwasrobbed","download_url":"https://codeload.github.com/iwasrobbed/RPCircularProgress/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iwasrobbed%2FRPCircularProgress/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268472918,"owners_count":24255786,"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-08-02T02:00:12.353Z","response_time":74,"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":["bar","chart","circle","ios","pie","progress","ring","swift"],"created_at":"2024-01-05T20:16:09.210Z","updated_at":"2025-08-02T23:32:42.524Z","avatar_url":"https://github.com/iwasrobbed.png","language":"Swift","funding_links":[],"categories":["UI"],"sub_categories":["Activity Indicator","Other free courses"],"readme":"## RPCircularProgress\n\n[![Coverage Status](https://coveralls.io/repos/github/iwasrobbed/RPCircularProgress/badge.svg?branch=master)](https://coveralls.io/github/iwasrobbed/RPCircularProgress?branch=master)\n[![Build Status](https://travis-ci.org/iwasrobbed/RPCircularProgress.svg?branch=master)](https://travis-ci.org/iwasrobbed/RPCircularProgress)\n[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/iwasrobbed/RPCircularProgress/blob/master/LICENSE)\n[![CocoaPods](https://img.shields.io/cocoapods/v/RPCircularProgress.svg?maxAge=2592000)]()\n[![Swift](https://img.shields.io/badge/language-Swift-blue.svg)](https://swift.org)\n\n⚠️ To use with Swift 2.3 please ensure you are using == 0.2.3 ⚠️\n\n⚠️ To use with Swift 3.x please ensure you are using \u003e= 0.3.0 ⚠️\n\n⚠️ To use with Swift 4.x please ensure you are using \u003e= 0.4.0 ⚠️\n\n⚠️ To use with Swift 4.2 please ensure you are using \u003e= 0.4.1 ⚠️\n\n⚠️ To use with Swift 5.0 please ensure you are using \u003e= 0.5.0 ⚠️\n\nUIView subclass written in Swift to show circular progress.\n\n![Example Usage](ohhai.gif)\n\nIs your app using it? [Let me know!](mailto:rob@desideratalabs.co)\n\nPlease see the included example app for sample usage.\n\n### Styles\n\n* Indeterminate (spins infinitely)\n* Normal (set progress between 0.0 and 1.0)\n* Mixed (can make it indeterminate, but also animate progress to 1.0)\n\n### Public API\n\n```swift\n/**\n Enables or disables the indeterminate (spinning) animation\n\n - parameter enabled:    Whether or not to enable the animation (defaults to `true`)\n - parameter completion: An optional closure to execute after the animation completes\n */\nopen func enableIndeterminate(_ enabled: Bool = true, completion: CompletionBlock? = nil) {}\n```\n\n```swift\n/**\n Updates the progress bar to the given value with the optional properties\n\n - parameter progress:     The progress to update to, pinned between `0` and `1`\n - parameter animated:     Whether or not the update should be animated (defaults to `true`)\n - parameter initialDelay: Sets an initial delay before the animation begins\n - parameter duration:     Sets the overal duration that the animation should complete within\n - parameter completion:   An optional closure to execute after the animation completes\n */\nopen func updateProgress(_ progress: CGFloat, animated: Bool = true, initialDelay: CFTimeInterval = 0, duration: CFTimeInterval? = nil, completion: CompletionBlock? = nil) {}\n```\n\n### Properties\n\nNote: Most properties below are `@IBInspectable`, but I don't use Interface Builder personally so let me know if you see any issues.\n\n`var trackTintColor: UIColor`\n* The color of the empty progress track (gets drawn over)\n\n`var progressTintColor: UIColor`\n* The color of the progress bar\n\n`var innerTintColor: UIColor?`\n* The color the notched out circle within the progress area (if there is one)\n\n`var roundedCorners: Bool`\n* Sets whether or not the corners of the progress bar should be rounded\n\n`var thicknessRatio: CGFloat`\n* Sets how thick the progress bar should be (pinned between `0.01` and `1`)\n\n`var clockwiseProgress: Bool`\n* Sets whether or not the animation should be clockwise\n\n`var timingFunction: CAMediaTimingFunction`\n* A timing function defining the pacing of the animation. Defaults to ease in, ease out.\n\n`var progress: CGFloat`\n* Getter for the current progress (not observed from any active animations)\n\n`var indeterminateProgress: CGFloat`\n* Sets how much of the progress bar should be filled during an indeterminate animation, pinned between `0.05` and `0.9`\n* **Note:** This can be overriden / animated from by using updateProgress(...)\n\n`var indeterminateDuration: CFTimeInterval`\n* Controls the speed at which the indeterminate progress bar animates\n\n### Supports\nSwift, ARC \u0026 iOS 8+, Autolayout or springs and struts\n\n### A little help from my friends\nPlease feel free to fork and create a pull request for bug fixes or improvements, being sure to maintain the general coding style, adding tests, and adding comments as necessary.\n\n### Credit\nThis library is effectively a Swift port of [DACircularProgress](https://github.com/danielamitay/DACircularProgress) with some minor changes to the API, so it should be fairly easy to act as a replacement. I really loved that library but unfortunately it wasn't being maintained.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiwasrobbed%2FRPCircularProgress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiwasrobbed%2FRPCircularProgress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiwasrobbed%2FRPCircularProgress/lists"}