Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. CRRefresh

CRRefresh

MITSwift

A Swift library for adding customizable pull-to-refresh and infinite scrolling animations to iOS scroll views.

GitHubGitHub
960 stars113 forks0 contributors

What is CRRefresh?

CRRefresh is a Swift library for iOS that provides an easy way to add pull-to-refresh and infinite scrolling functionality to scrollable views. It solves the problem of implementing smooth, customizable refresh animations in UITableView, UICollectionView, and other UIScrollView subclasses with minimal code.

Target Audience

iOS developers building apps that require refresh functionality in table views, collection views, or text views, particularly those who want customizable animation styles beyond the system defaults.

Value Proposition

Developers choose CRRefresh for its clean protocol-based architecture that makes customization straightforward, its support for multiple scroll view types, and its collection of pre-built, visually appealing animators that work out of the box.

Overview

An easy way to use pull-to-refresh

Use Cases

Best For

  • Adding pull-to-refresh to UITableView in Swift iOS apps
  • Implementing infinite scrolling in UICollectionView
  • Creating custom refresh animations with unique visual styles
  • Building iOS apps that need consistent refresh behavior across different scroll view types
  • Quickly prototyping refresh functionality with pre-built animators
  • Maintaining clean refresh code through a standardized protocol

Not Ideal For

  • Apps built entirely with SwiftUI that require native refresh components
  • Projects needing out-of-the-box, no-code animation customization without protocol implementation
  • Teams prioritizing frequent library updates with new built-in animations
  • Large-scale apps with complex state management where integrated solutions like RxSwift bindings are preferred

Pros & Cons

Pros

Protocol-Based Customization

The CRRefreshProtocol allows developers to create fully custom animations by implementing methods like refreshBegin and refreshEnd, enabling unique refresh experiences beyond pre-built options.

Multi-View Compatibility

Supports UIScrollView and all its subclasses including UITableView, UICollectionView, and UITextView, as stated in the README, making it versatile for different iOS interfaces.

Pre-Built Animators

Includes several ready-to-use animators like NormalAnimator and RamotionAnimator, shown in screenshots, which can be added with minimal code for quick prototyping.

Simple API

Methods like addHeadRefresh and endHeaderRefresh provide an intuitive interface for managing refresh states, demonstrated in the usage examples with clear Swift code.

Cons

Limited SwiftUI Support

CRRefresh is designed for UIKit and does not natively integrate with SwiftUI, limiting its use in modern iOS development trends without additional wrapping effort.

Infrequent Updates

The README admits that new dynamic effects are not regularly added, which may leave users wanting fresh animations without investing in custom protocol implementation.

Customization Overhead

Creating custom animators requires fully conforming to the CRRefreshProtocol, which can be more complex than using drop-in components with simple configuration options.

Frequently Asked Questions

Quick Stats

Stars960
Forks113
Contributors0
Open Issues27
Last commit5 years ago
CreatedSince 2017

Tags

#ios#ui-animations#effects#animation#infinite-scrolling#mobile-development#cocoapods#swift-library#scroll-view#carthage#pull-to-refresh

Built With

i
iOS
S
Swift

Included in

iOS51.7k
Auto-fetched 1 day ago

Related Projects

MJRefreshMJRefresh

An easy way to use pull-to-refresh.

Stars13,824
Forks3,530
Last commit5 months ago
SVPullToRefreshSVPullToRefresh

Give pull-to-refresh & infinite scrolling to any UIScrollView with 1 line of code.

Stars4,787
Forks1,077
Last commit2 years ago
CBStoreHouseRefreshControlCBStoreHouseRefreshControl

Fully customizable pull-to-refresh control inspired by Storehouse iOS app

Stars3,896
Forks468
Last commit6 years ago
DGElasticPullToRefreshDGElasticPullToRefresh

Elastic pull to refresh for iOS developed in Swift

Stars3,750
Forks436
Last commit3 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub