{"id":2587,"url":"https://github.com/overboming/ZCAnimatedLabel","last_synced_at":"2025-08-03T00:32:04.339Z","repository":{"id":28492138,"uuid":"32008421","full_name":"overboming/ZCAnimatedLabel","owner":"overboming","description":"UILabel replacement with fine-grain appear/disappear animation","archived":false,"fork":false,"pushed_at":"2021-02-16T16:12:49.000Z","size":68,"stargazers_count":2290,"open_issues_count":20,"forks_count":222,"subscribers_count":43,"default_branch":"master","last_synced_at":"2024-04-24T14:49:59.204Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Objective-C","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/overboming.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":"2015-03-11T09:14:32.000Z","updated_at":"2024-04-22T02:16:11.000Z","dependencies_parsed_at":"2022-07-13T06:50:50.024Z","dependency_job_id":null,"html_url":"https://github.com/overboming/ZCAnimatedLabel","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overboming%2FZCAnimatedLabel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overboming%2FZCAnimatedLabel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overboming%2FZCAnimatedLabel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/overboming%2FZCAnimatedLabel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/overboming","download_url":"https://codeload.github.com/overboming/ZCAnimatedLabel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228510736,"owners_count":17931759,"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":[],"created_at":"2024-01-05T20:16:17.683Z","updated_at":"2024-12-06T18:30:35.499Z","avatar_url":"https://github.com/overboming.png","language":"Objective-C","funding_links":[],"categories":["UI","Objective-C","UI Components","Other"],"sub_categories":["Label","Other free courses","General Purpose Libraries"],"readme":"# ZCAnimatedLabel\nUILabel-like view with easy to extend appear/disappear animation\n\n# Features\n* Rich text support (with NSAttributedString)\n* Group aniamtion by character/word/line\n* Customizable animation start delay for each text block\n* Great performance, only changed area is redrawn\n* Optional layer-based implementation\n* 3D/Geometry transform support (layer based only)\n* iOS 5+ compatibility\n\n# Demo\n\n* Default \n\n![image](http://zippy.gfycat.com/LimitedWigglyGermanshepherd.gif)\n\n* Fall\n \n![image](http://zippy.gfycat.com/FantasticGargantuanHog.gif)\n\n* Duang/Spring \n\n![image](http://zippy.gfycat.com/GrippingMeanJavalina.gif)\n\n* Flyin \n\n![image](http://zippy.gfycat.com/JampackedCompetentGerbil.gif)\n\n* Focus \n\n![image](http://zippy.gfycat.com/FeistyShockingGermanshepherd.gif)\n\n\n* Shapeshift  \n\n![image](http://zippy.gfycat.com/ForkedScalyKagu.gif)\n\n* Reveal \n\n![image](http://zippy.gfycat.com/GrouchyLastingGrizzlybear.gif)\n \n* Thrown\n\n ![image](http://zippy.gfycat.com/RashDecimalImperatorangel.gif)\n\n* Transparency \n\n![image](http://zippy.gfycat.com/NeighboringSlightJumpingbean.gif)\n\n* Spin \n\n![image](http://zippy.gfycat.com/UnderstatedBoldAlpineroadguidetigerbeetle.gif)\n* Dash \n\n![image](http://zippy.gfycat.com/DeadlyUnlinedJunco.gif)\n* More to come\n\n\n# How to use\n`ZCAnimatedLabel` is available via CocoaPods. If you don't need all the effect subclasses, simply drag `ZCAnimatedLabel.(h|m)`, `ZCCoreTextLayout.(h|m)` and `ZCEasingUtil.(h|m)` into your project and start customizing your own.\n\n\n# Subclassing\n`ZCAnimatedLabel` has two modes: non-layer based and layer based. In the first mode, `ZCAnimatedLabel` is a flat `UIView`, every stage of animation is drawn using Core Graphics, you can customize redraw area for your animation for better performance. Following methods can be overriden:\n\n* `- (void) textBlockAttributesInit: (ZCTextBlock *) textBlock;`\n* `- (void) appearStateDrawingForRect: (CGRect) rect textBlock: (ZCTextBlock *) textBlock;`\n* `- (void) disappearStateDrawingForRect: (CGRect) rect textBlock: (ZCTextBlock *) textBlock;`\n* `- (CGRect) redrawAreaForRect: (CGRect) rect textBlock: (ZCTextBlock *) textBlock;`\n\nSecond option is layer based, where each text block is a simple `CALayer`, 3D tranform is possible in this mode by setting layer's `transform` property, if redraw area is bigger and not too many text blocks, this can achive a performance gain. Set `self.layerBased` to `YES` and override following methods for customization:\n\n* `- (void) textBlockAttributesInit: (ZCTextBlock *) textBlock;`\n* `- (void) appearStateLayerChangesForTextBlock: (ZCTextBlock *) textBlock;`\n* `- (void) disappearLayerStateChangesForTextBlock: (ZCTextBlock *) textBlock;`\n\n\n# Todo\n* Merge CALayers no longer animating into a single backing store and reuse CALayer for animating layers. (Even better performance for layerBased implementation)\n* More Effects, possily glyph related ones\n* Use core animation emmiter\n\n\n\n# Thanks to\n\n* [`LTMorhpingLabel`](https://github.com/lexrus/LTMorphingLabel) for heavy inspiration. If you like `ZCAnimatedLabel`, you should definitely this one out. \n* [`AGGeometryKit`](https://github.com/hfossli/AGGeometryKit) for arbitrary shape 3D transform code piece used in `ZCDashLabel`\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foverboming%2FZCAnimatedLabel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foverboming%2FZCAnimatedLabel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foverboming%2FZCAnimatedLabel/lists"}