LTMorphingLabel
  • November 24, 2023

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

enum LTMorphingEffect: Int, Printable


.Scale – default

.Evaporate

.Fall

.Pixelate

.Sparkle

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

 

.Burn

.Anvil

 

SwiftUI


public var body: some View {
VStack {
MorphingText(
“Awesome Morphing Text”,
effect: .evaporate,
font: UIFont.systemFont(ofSize: 20),
textColor: .black,
textAlignment: .center
).frame(maxWidth: 200, maxHeight: 100)

Requirements


  1. Xcode 12
  2. iOS 9.0+

Installation


Swift Package Manager

  1. File > Swift Packages > Add Package Dependency
  2. Copy & paste https://github.com/lexrus/LTMorphingLabel then follow the instruction

XCFramework

XCFramework is a new option introduced in Xcode 11. You can manually download the pre-compiled LTMorphingLabel.xcframework.zip from the Releases page. Then drag and drop it into your project.

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

Accio

  1. Add the following to your Package.swift:

.package(url: “https://github.com/lexrus/LTMorphingLabel.git”, .upToNextMajor(from: “0.9.2”)),

  1. Next, add LTMorphingLabel to your App targets dependencies like so:

.target(
name: “App”,
dependencies: [
“LTMorphingLabel”,
]
),

  1. Then run accio update.

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.

GitHub


View Github

#effects #framework #ios #swift #uilabel #xcode
YOU MIGHT ALSO LIKE...
🧭 NavigationKit

NavigationKit is a lightweight library which makes SwiftUI navigation super easy to use. 💻 Installation 📦 Swift Package Manager Using Swift Package Manager, add ...

swiftui-navigation-stack

An alternative SwiftUI NavigationView implementing classic stack-based navigation giving also some more control on animations and programmatic navigation. NavigationStack Installation ...

Stinsen

Simple, powerful and elegant implementation of the Coordinator pattern in SwiftUI. Stinsen is written using 100% SwiftUI which makes it ...

SwiftUI Router

With SwiftUI Router you can power your SwiftUI app with path-based routing. By utilizing a path-based system, navigation in your app becomes ...

FlowStacks

This package takes SwiftUI's familiar and powerful NavigationStack API and gives it superpowers, allowing you to use the same API not just ...