# TOMSMorphingLabel Configurable morphing transitions between text values of a label. Triggering the animation is as easy as setting the labels `text` property. ## Demo  ## Installation with CocoaPods TOMSMorphingLabel is available through [CocoaPods](http://cocoapods.org). To install it, simply add the following line to your Podfile: #### Podfile ```ruby platform :ios, '7.0' pod "TOMSMorphingLabel", "~> 0.5" ``` ## Usage Instantiate TOMSMorphingLabel as you would do with an UILabel results in a fully working thus morphing label. ```objective-c TOMSMorphingLabel *label = [[TOMSMorphingLabel alloc] initWithFrame:CGRectMake(0, 42, self.view.frame.size.width, 42)]; [self.view addSubview:label]; ``` Setting - and particularly changing - the labels text property will automatically morph the labels previous text to the new value. ```objective-c label.text = @"Swift"; ``` Setting the labels text property using `setText:withCompletionBlock` will morph the labels as well as triggering the completion block when the animation is finished. ```objective-c [label setText:@"Swift" withCompletionBlock:^{ NSLog(@"label.text is now 'Swift'"); }]; ``` Note that the label will execute only one morph transition at a time. If the text value of the label changes during a transition - even if it changes multiple times - the label will invoke a transition to the youngest text value that was set. ## Customization TOMSMorphingLabel provides the possibility to configure the morphing transitions look and feel. The configurable properties are defined as follows:
| animationDuration: CGFloat | Time that elapses between the setting of a new text value and the end of the morphing transition. Default: 0.37 |
| characterAnimationOffset: CGFloat | Spatial propagation speed of the character shrink and alpha effect. Default: 0.25 |
| characterShrinkFactor: CGFloat | Factor that the scale of a completely disappeared character is divided by. Default: 4 |
| morphingEnabled: BOOL | Defines whether the morphing transition between text values is enabled. Default: YES |