Skip to content
[EXPERIMENTAL] Graceful morphing effects for UILabel written in Swift.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LTMorphingLabel Add progress control in demo Feb 2, 2019
LTMorphingLabelDemo.xcodeproj
LTMorphingLabelDemo Add progress control in demo Feb 2, 2019
LTMorphingLabelTests Minor clean up. Jul 24, 2018
LTMorphingLabelUITests
.gitignore
.swift-version bump version Oct 30, 2018
.swiftlint.yml
.travis.yml bump version Oct 30, 2018
LICENSE
LTMorphingLabel.podspec Fix #123 Jan 16, 2019
README.md Added interactivity logic Jan 2, 2019

README.md

LTMorphingLabel

Travis Language CocoaPods Carthage compatible License

A morphing UILabel subclass written in Swift. The .Scale effect mimicked Apple's QuickType animation of iOS 8 in WWDC 2014. New morphing effects are available as Swift extensions.

enum LTMorphingEffect: Int, Printable

.Scale - default

LTMorphingLabel

.Evaporate

LTMorphingLabel-Evaporate

.Fall

LTMorphingLabel-Fall

.Pixelate

LTMorphingLabel-Pixelate

.Sparkle

LTMorphingLabel-Sparkle

.Sparkle is built on top of QuartzCore.CAEmitterLayer. There's also a SpriteKit powered version here.

.Burn

LTMorphingLabel-Burn

.Anvil

LTMorphingLabel-Anvil

Requirements

  1. Xcode 10
  2. iOS 8.0+

Installation

Carthage

  1. Add this line to your Cartfile: github "lexrus/LTMorphingLabel"
  2. Read the official instruction

CocoaPods

  1. Install the latest release of CocoaPods: gem install cocoapods
  2. Add this line to your Podfile: pod 'LTMorphingLabel'
  3. Install the pod: pod install

Usage

  1. Change the class of a label from UILabel to LTMorphingLabel;
  2. Programmatically set a new String to its text property.
  3. To use interactively, call .pause() after changing .text property, and use updateProgress(progress: Float)to update the progress interactively.

Unit tests

Open the project with Xcode then press command + u.

Alternative

Even though this lib was used in a few products on App Store, it’s still an experimental project. Frankly, there’re some nice competitors out there guarantee both compatibility and stability. And the most outstanding one is ZCAnimatedLabel. I’d like to recommend it for production use.

And finally, an Android port.

Third Party Bindings

React Native

You may now use this library with React Native via the module here

Donation

Buy me a coffee? Here is my wallet:

BTC: 3MnMu3Q1UK63dRbwjhwqWSBVLWxy8SPk6b

ETH: 0x2884F4bE2cBA05395EE0EF997a44aA9B90fD2E2A

License

This code is distributed under the terms and conditions of the MIT license.

You can’t perform that action at this time.