Popularity
8.5
Stable
Activity
0.0
Stable
2,291
43
228

Code Quality Rank: L4
Programming language: Objective-C
License: MIT License
Tags: UI     Label    
Latest version: v0.0.4

ZCAnimatedLabel alternatives and similar libraries

Based on the "Label" category.
Alternatively, view ZCAnimatedLabel alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of ZCAnimatedLabel or a related project?

Add another 'Label' Library

README

ZCAnimatedLabel

UILabel-like view with easy to extend appear/disappear animation

Features

  • Rich text support (with NSAttributedString)
  • Group aniamtion by character/word/line
  • Customizable animation start delay for each text block
  • Great performance, only changed area is redrawn
  • Optional layer-based implementation
  • 3D/Geometry transform support (layer based only)
  • iOS 5+ compatibility

Demo

  • Default

image

  • Fall

image

  • Duang/Spring

image

  • Flyin

image

  • Focus

image

  • Shapeshift

image

  • Reveal

image

  • Thrown

image

  • Transparency

image

  • Spin

image

  • Dash

image

  • More to come

How to use

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.

Subclassing

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:

  • - (void) textBlockAttributesInit: (ZCTextBlock *) textBlock;
  • - (void) appearStateDrawingForRect: (CGRect) rect textBlock: (ZCTextBlock *) textBlock;
  • - (void) disappearStateDrawingForRect: (CGRect) rect textBlock: (ZCTextBlock *) textBlock;
  • - (CGRect) redrawAreaForRect: (CGRect) rect textBlock: (ZCTextBlock *) textBlock;

Second 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:

  • - (void) textBlockAttributesInit: (ZCTextBlock *) textBlock;
  • - (void) appearStateLayerChangesForTextBlock: (ZCTextBlock *) textBlock;
  • - (void) disappearLayerStateChangesForTextBlock: (ZCTextBlock *) textBlock;

Todo

  • Merge CALayers no longer animating into a single backing store and reuse CALayer for animating layers. (Even better performance for layerBased implementation)
  • More Effects, possily glyph related ones
  • Use core animation emmiter

Thanks to

  • LTMorhpingLabel for heavy inspiration. If you like ZCAnimatedLabel, you should definitely this one out.
  • AGGeometryKit for arbitrary shape 3D transform code piece used in ZCDashLabel