{"id":15037677,"url":"https://github.com/urtaq/urparallaxscrollanimator","last_synced_at":"2026-03-17T23:35:44.511Z","repository":{"id":56925280,"uuid":"86295584","full_name":"Urtaq/URParallaxScrollAnimator","owner":"Urtaq","description":"Show an animation as far as moved scroll while scrolling at the scroll view","archived":false,"fork":false,"pushed_at":"2018-12-10T02:54:50.000Z","size":37619,"stargazers_count":35,"open_issues_count":0,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-08T20:03:40.694Z","etag":null,"topics":["cocoapods","ios","lottie-ios","parallax-scrolling","swift","swift3","uitableview"],"latest_commit_sha":null,"homepage":null,"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/Urtaq.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":"2017-03-27T05:42:30.000Z","updated_at":"2023-07-25T14:08:01.000Z","dependencies_parsed_at":"2022-08-20T22:50:28.300Z","dependency_job_id":null,"html_url":"https://github.com/Urtaq/URParallaxScrollAnimator","commit_stats":null,"previous_names":["jegumhon/urparallaxscrollanimator"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Urtaq%2FURParallaxScrollAnimator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Urtaq%2FURParallaxScrollAnimator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Urtaq%2FURParallaxScrollAnimator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Urtaq%2FURParallaxScrollAnimator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Urtaq","download_url":"https://codeload.github.com/Urtaq/URParallaxScrollAnimator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248129973,"owners_count":21052670,"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":["cocoapods","ios","lottie-ios","parallax-scrolling","swift","swift3","uitableview"],"created_at":"2024-09-24T20:35:18.419Z","updated_at":"2026-03-17T23:35:44.442Z","avatar_url":"https://github.com/Urtaq.png","language":"Swift","readme":"# URParallaxScrollAnimator\n\n [![Swift](https://img.shields.io/badge/Swift-3.0%2B-orange.svg)](https://swift.org) [![podplatform](https://cocoapod-badges.herokuapp.com/p/URParallaxScrollAnimator/badge.png)](https://cocoapod-badges.herokuapp.com/p/URParallaxScrollAnimator/badge.png) [![pod](https://cocoapod-badges.herokuapp.com/v/URParallaxScrollAnimator/badge.png)](https://cocoapods.org/pods/URParallaxScrollAnimator) ![poddoc](https://img.shields.io/cocoapods/metrics/doc-percent/URParallaxScrollAnimator.svg) ![license](https://cocoapod-badges.herokuapp.com/l/URParallaxScrollAnimator/badge.png) ![travis](https://travis-ci.org/jegumhon/URParallaxScrollAnimator.svg?branch=master) [![codecov](https://codecov.io/gh/jegumhon/URParallaxScrollAnimator/branch/master/graph/badge.svg)](https://codecov.io/gh/jegumhon/URParallaxScrollAnimator) [![CocoaPods compatible](https://img.shields.io/badge/CocoaPods-compatible-4BC51D.svg?style=flat)](https://github.com/CocoaPods/CocoaPods)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjegumhon%2FURParallaxScrollAnimator.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjegumhon%2FURParallaxScrollAnimator?ref=badge_shield)\n\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjegumhon%2FURParallaxScrollAnimator.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjegumhon%2FURParallaxScrollAnimator?ref=badge_large)\n\n## What is this?\nShow an animation as far as moved scroll while scrolling at the scroll view for **Swift3**  \nThis code style is the **`Protocol Oriented Programming`**.  \nSo some protocols are configured to implement the parallax scrolling.  \nThis extends the scrollView to make the parallax scrolling feature on the Run time, using objc_getAssociatedObject.\n\nTo show the animation as scrolling, [Lottie](http://airbnb.design/lottie/) is able to be used instead of UIImageView.\n\nIn addition to, you can provide the funny factor, [Haptic feedback](https://developer.apple.com/ios/human-interface-guidelines/interaction/feedback/).  \nThe haptic feedback is provided by scrolling down.(But only for iOS 10)\n\n![sample](https://github.com/jegumhon/URParallaxScrollAnimator/blob/master/Resources/parallaxScrolling+PullToRefresh1.gif?raw=true)\n\n## Requirements\n\n* iOS 8.1+\n* Swift 3.0+\n\n## Installation\n\n### Cocoapods\n\nAdd the following to your `Podfile`.\n\n    pod \"URParallaxScrollAnimator\"\n    \n#### Dependancy\n\n[Lottie-iOS](https://github.com/airbnb/lottie-ios)\n\n## Examples\n\nSee the `Example` folder.  \nRun `pod install` and open the .xcworkspace file.\n\n## Usage\n\n```swift\nimport URParallaxScrollAnimator\n```\n\n#### 1. Set the Parallax Scroll maker\n```swift\n    // for example...\n    func initView() {\n        self.tableView.parallaxScrollExtension.makeParallaxScrollExtensionConfiguration(upperImage: #imageLiteral(resourceName: \"cloud_by_ur2\"), lowerImage: #imageLiteral(resourceName: \"mountain_by_ur2\"), lowerLottieData: nil)\n    }\n```\n\n##### 1.1. How to use Lottie\n* You can find the detail Lottie usage guide at the [Lottie-iOS](https://github.com/airbnb/lottie-ios)\n* add the lottie files in the project, and then just use the json file name to load the Lottie View\n![sample](https://github.com/jegumhon/URParallaxScrollAnimator/blob/master/Resources/project_setting.png?raw=true)\n\n#### 2. Set the scroll handling functions in each UIScrollViewDelegate functions\n```swift\n    func scrollViewDidScroll(_ scrollView: UIScrollView) {\n        ...\n        self.tableView.parallaxScrollExtension.parallaxScrollViewDidScroll(scrollView)\n        ...\n    }\n\n    func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {\n        ...\n        self.tableView.parallaxScrollExtension.parallaxScrollViewWillBeginDragging(scrollView)\n        ...\n    }\n\n    func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {\n        ...\n        self.tableView.parallaxScrollExtension.parallaxScrollViewDidEndDragging(scrollView)\n        ...\n    }\n```\n\n#### 3. Call the Pull to refresh finishing function, if you need the Pull to refresh in your app\n```swift\n    // for example, if calling the reload function, \n    // you must call the \"parallaxScrollViewDidPullToRefresh\" function just after reloading\n    func handleAPICallFinish() {\n        ...\n        self.tableView.parallaxScrollExtension.parallaxScrollViewDidPullToRefresh()\n        ...\n    }\n```\n\n#### 4. 😀 Configurable parameters of URParallaxScrollAnimator 😀\n* **parallaxScrollRatio** : parallax ratio between the target scroll view and upper parallax view and lower parallax view.\n* **backgroundColor** : parallax scrollView's background color.\n* **isEnabledHapticFeedback** : enable the [Haptic feedback](https://developer.apple.com/ios/human-interface-guidelines/interaction/feedback/). Default is \"true\".(but this feature is only for **iOS 10**)\n* **isEnabledPullToRefresh** : enable the Pull to refresh. Default is \"false\".\n* **refreshAction** : callback to handle the Pull to refresh.(If you set this, \"isEnabledPullToRefresh\" is set automatically \"true\")\n\n## To-Do\n\n- [ ] support gif for scrolling animation.\n\n## License\n\nURParallaxScrollAnimator is available under the MIT license. See the [LICENSE](LICENSE) file for more info.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furtaq%2Furparallaxscrollanimator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Furtaq%2Furparallaxscrollanimator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furtaq%2Furparallaxscrollanimator/lists"}