{"id":24430838,"url":"https://github.com/vulcanshen/uiviewanimationtransitionqueue","last_synced_at":"2025-06-22T07:04:01.908Z","repository":{"id":56925146,"uuid":"90512719","full_name":"vulcanshen/UIViewAnimationTransitionQueue","owner":"vulcanshen","description":"Easy to chain UIView animation or transition","archived":false,"fork":false,"pushed_at":"2024-11-14T15:19:47.000Z","size":31,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-08T08:01:57.146Z","etag":null,"topics":["animation","cocoapods","queue","swift","transition-queue","uiview","xcode"],"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/vulcanshen.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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-05-07T06:12:30.000Z","updated_at":"2019-11-20T02:46:55.000Z","dependencies_parsed_at":"2025-06-08T08:01:59.667Z","dependency_job_id":"d4a58b0a-2d4f-44a7-a76f-e0dbe2ee9117","html_url":"https://github.com/vulcanshen/UIViewAnimationTransitionQueue","commit_stats":null,"previous_names":["shenyun2304/uiviewanimationtransitionqueue"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/vulcanshen/UIViewAnimationTransitionQueue","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcanshen%2FUIViewAnimationTransitionQueue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcanshen%2FUIViewAnimationTransitionQueue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcanshen%2FUIViewAnimationTransitionQueue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcanshen%2FUIViewAnimationTransitionQueue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vulcanshen","download_url":"https://codeload.github.com/vulcanshen/UIViewAnimationTransitionQueue/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vulcanshen%2FUIViewAnimationTransitionQueue/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261250227,"owners_count":23130538,"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":["animation","cocoapods","queue","swift","transition-queue","uiview","xcode"],"created_at":"2025-01-20T14:58:01.373Z","updated_at":"2025-06-22T07:03:56.897Z","avatar_url":"https://github.com/vulcanshen.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UIViewAnimationTransitionQueue\n\nMake UIView animation or transition chain more easliy\n\n![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)\n![License: MIT](https://img.shields.io/badge/platform-iOS-green.svg)\n![License: MIT](https://img.shields.io/badge/Pod-v0.39.0-yellow.svg)\n\n\n## Contents\n\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Usage](#usage)\n\n## Requirements\n\n- iOS 10.0+\n- Xcode 8.0+\n- Swift 3.0+\n\n## Installation\n\n### CocoaPods\n\n[CocoaPods](http://cocoapods.org) is a dependency manager for Cocoa projects. You can install it with the following command:\n\n```bash\n$ gem install cocoapods\n```\n\nTo integrate **UIViewAnimaitonTransitionQueue** into your Xcode project using CocoaPods, specify it in your `Podfile`:\n\n```ruby\nsource 'https://github.com/CocoaPods/Specs.git'\nplatform :ios, '10.0'\nuse_frameworks!\n\ntarget '\u003cYour Target Name\u003e' do\n    pod 'UIViewAnimationTransitionQueue', '~\u003e 0.1.1'\nend\n```\n\nThen, run the following command:\n\n```bash\n$ pod install\n```\n\n### Manually\n\nJust copy [UIViewAnimationTransitionQueue.swift](UIViewAnimationTransitionQueue/UIViewAnimationTransitionQueue.swift) into your project\n\n\n## Usage\n\n### Pure Animation Queue: UIView.animationQ\n\n`.add`: add animation setting into queue\n\nexample in [ViewController](UIViewAnimationTransitionQueue/ViewController.swift)\n\n```swift\nUIView.animationQ\n            .add {\n                self.vBlock.frame = self.miniFrame!\n            }.add(duration: 3, dampingRatio: 0.1, velocity: 1) {\n                self.vBlock.frame = self.largeFrame!\n            }.add(duration: 2) {\n                self.vBlock.frame = self.miniFrame!\n            }.done {\n                print(\"pausing 3 secs\")\n            }\n            .pause(3)\n            .done {\n                print(\"pause end\")\n            }\n            .add {\n                self.vBlock.frame = self.originFrame!\n            }.done {\n                print(\"ani end\")\n            }.start()\n```\n\n### Pure Transition Queue: UIView.transitionQ\n\n`.add`: add transition setting into queue, from view argument needed\n\nexample in [ViewController](UIViewAnimationTransitionQueue/ViewController.swift)\n\n```swift\nUIView.transitionQ\n            .add(vBlock, toView: nil, options: .transitionFlipFromBottom) {\n                self.vBlock.addSubview(self.ivEmoji)\n            }.done {\n                print(\"pausing 3 secs\")\n            }\n            .pause(3)\n            .done {\n                print(\"pause end\")\n            }\n            .add(vBlock, toView: nil, options: .transitionFlipFromTop) {\n                self.ivEmoji.removeFromSuperview()\n            }.done {\n                print(\"transition end\")\n            }.start()\n```\n\n### Mix Animation and Transition Queue\n\n`.addTrans`: add transition into queue, from view argument needed\n\n`.addAnim`: add animation setting into queue\n\nexample in [ViewController](UIViewAnimationTransitionQueue/ViewController.swift)\n\n```swift\nUIView.transformQ\n            .addTrans(vBlock, toView: nil, options: .transitionFlipFromBottom) {\n                self.vBlock.addSubview(self.ivEmoji)\n            }.addAnim {\n                self.vBlock.frame = self.largeFrame!\n                self.ivEmoji.frame = CGRect(origin: CGPoint.zero, size:self.largeFrame!.size)\n            }.done {\n                print(\"pausing 2 sec\")\n            }.pause(2)\n            .done {\n                print(\"pause end\")\n            }.addTrans(vBlock, toView: nil,options: .transitionFlipFromTop){\n                self.ivEmoji.removeFromSuperview()\n                self.ivEmoji.frame = CGRect(origin: CGPoint.zero, size: self.originFrame!.size)\n            }.addAnim {\n                self.vBlock.frame = self.originFrame!\n            }.done {\n                print(\"all end\")\n            }.start()\n```\n\n### Common Action\n\n`.pause`: pausing a period of time, default 1 second\n\n`.done`: execute after previous action done\n\n`.start()`: start to do setting in **FIFO** order\n\n## License\n\nUIViewAnimationTransitionQueue is released under the MIT license. See LICENSE for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvulcanshen%2Fuiviewanimationtransitionqueue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvulcanshen%2Fuiviewanimationtransitionqueue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvulcanshen%2Fuiviewanimationtransitionqueue/lists"}