{"id":17163211,"url":"https://github.com/noppefoxwolf/refreshcontrol","last_synced_at":"2026-02-23T11:39:52.845Z","repository":{"id":193433935,"uuid":"688791881","full_name":"noppefoxwolf/RefreshControl","owner":"noppefoxwolf","description":"A customized refresh control based on UIRefreshControl.","archived":false,"fork":false,"pushed_at":"2024-03-24T17:39:01.000Z","size":1205,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-02T05:46:11.254Z","etag":null,"topics":["ios","pull-to-refresh","uikit"],"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/noppefoxwolf.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,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-09-08T05:48:06.000Z","updated_at":"2024-02-24T23:39:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"7158b570-b42d-4168-88c5-d63e7281168c","html_url":"https://github.com/noppefoxwolf/RefreshControl","commit_stats":{"total_commits":28,"total_committers":1,"mean_commits":28.0,"dds":0.0,"last_synced_commit":"43bd82030e4f741485a59ae51b7242ef03333e08"},"previous_names":["noppefoxwolf/refreshcontrol"],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noppefoxwolf%2FRefreshControl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noppefoxwolf%2FRefreshControl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noppefoxwolf%2FRefreshControl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/noppefoxwolf%2FRefreshControl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/noppefoxwolf","download_url":"https://codeload.github.com/noppefoxwolf/RefreshControl/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248731534,"owners_count":21152835,"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":["ios","pull-to-refresh","uikit"],"created_at":"2024-10-14T22:48:10.530Z","updated_at":"2026-02-23T11:39:52.610Z","avatar_url":"https://github.com/noppefoxwolf.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RefreshControl\n\n![](https://github.com/noppefoxwolf/RefreshControl/blob/main/.github/example.gif)\n\n\u003e [!WARNING]\n\u003e The `noppefoxwolf/RefreshControl` is using some black magic.\n\u003e I recommend reviewing the implementation code.\n\u003e You can use this library with own risk.\n\n# Feature\n\n## UIRefreshControl compatible\n- [x] Arrow style content view (ContentHostingRefreshControl)\n- [x] Offscreen begin refresh (WaitHostingRefreshControl)\n- [x] UIRefreshControl extensions (UIRefreshControl+)\n\n## Subclass extends\n- [x] Customize content view (ContentHostingRefreshControl)\n- [x] Overtime message (OvertimeRefreshControl)\n- [x] Timeout handler (TimeoutRefreshControl)\n- [x] Add delegate (DelegatableRefreshControl)\n- [x] Private method access (InternalRefreshControl)\n\n## Additional extends\n- [x] disabled control (RefreshControlController)\n\n# Usage\n\nThe `noppefoxwolf/RefreshControl` is subclass of UIRefreshControl.\nYou can use this library same of UIRefreshControl.\n\n```swift\nimport RefreshControl\n...\nrefreshControl = RefreshControl()\nrefreshControl!.addAction(UIAction { _ in\n  ...\n}, for: .primaryActionTriggered)\n```\n\nIf you want to use disabled refreshControl.\nYou can use `RefreshControlController`.\n\n```swift\ntableView.refreshControlController = RefreshControlController(\n    refreshControl: refreshControl\n)\ntableView.refreshControlController.isEnabled = false // Show disabled view\n``` \n\n## Apps Using\n\n\u003cp float=\"left\"\u003e\n    \u003ca href=\"https://apps.apple.com/app/id1668645019\"\u003e\u003cimg src=\"https://github.com/noppefoxwolf/MediaViewer/blob/main/.github/dawn.png\" height=\"65\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nIf you use a RefreshControl, add your app via Pull Request.\n\n# LICENSE\n\nRefreshControl is released under an MIT license. See the LICENSE file for more information\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoppefoxwolf%2Frefreshcontrol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnoppefoxwolf%2Frefreshcontrol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnoppefoxwolf%2Frefreshcontrol/lists"}