[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6746":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":16,"starSnapshotCount":16,"syncStatus":27,"lastSyncTime":28,"discoverSource":29},6746,"LTMorphingLabel","lexrus\u002FLTMorphingLabel","lexrus","[EXPERIMENTAL] Graceful morphing effects for UILabel written in Swift.","",null,"Swift",8144,779,189,24,0,7,39.68,"MIT License",false,"master",true,[],"2026-06-12 02:01:29","# LTMorphingLabel\n\n![Language](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flanguage-Swift%205-orange.svg)\n[![CocoaPods](https:\u002F\u002Fimg.shields.io\u002Fcocoapods\u002Fv\u002FLTMorphingLabel.svg?style=flat)](https:\u002F\u002Fgithub.com\u002Flexrus\u002FLTMorphingLabel)\n[![Carthage compatible](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCarthage-compatible-4BC51D.svg?style=flat)](https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage)\n[![Accio supported](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAccio-supported-0A7CF5.svg?style=flat)](https:\u002F\u002Fgithub.com\u002FJamitLabs\u002FAccio)\n![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Flexrus\u002FLTMorphingLabel.svg?style=flat)\n\nA morphing UILabel subclass written in Swift, originally designed to mimic [Apple's QuickType animation in iOS 8 at WWDC 2014](https:\u002F\u002Fyoutu.be\u002Fw87fOAG8fjk?t=3451).\n\n## Table of Contents\n\n- [Available Effects](#available-effects)\n  - [.scale](#scale-default)\n  - [.evaporate](#evaporate)\n  - [.fall](#fall)\n  - [.pixelate](#pixelate)\n  - [.sparkle](#sparkle)\n  - [.burn](#burn)\n- [Usage](#usage)\n  - [UIKit](#uikit)\n  - [SwiftUI](#swiftui)\n- [Requirements](#requirements)\n- [Installation](#installation)\n  - [Swift Package Manager](#swift-package-manager)\n  - [CocoaPods](#cocoapods)\n  - [Carthage](#carthage)\n  - [XCFramework](#xcframework)\n  - [Accio](#accio)\n- [Unit Testing](#unit-testing)\n- [Apps Using `LTMorphingLabel`](#apps-using-ltmorphinglabel)\n- [Third-Party Ports](#third-party-ports)\n  - [Android](#android)\n  - [React Native](#react-native)\n- [License](#license)\n\n## Available Effects\n\n#### .scale (_default_)\n\n\u003Cimg src=\"https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F219689\u002F3491822\u002F96bf5de6-059d-11e4-9826-a6f82025d1af.gif\" width=\"300\" height=\"70\" alt=\"LTMorphingLabel\"\u002F>\n\n#### [.evaporate](https:\u002F\u002Fgithub.com\u002Flexrus\u002FLTMorphingLabel\u002Fblob\u002Fmaster\u002FLTMorphingLabel\u002FLTMorphingLabel%2BEvaporate.swift)\n\n\u003Cimg src=\"https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F219689\u002F3491838\u002Fffc5aff2-059d-11e4-970c-6e2d7664785a.gif\" width=\"300\" height=\"70\" alt=\"LTMorphingLabel-Evaporate\"\u002F>\n\n#### [.fall](https:\u002F\u002Fgithub.com\u002Flexrus\u002FLTMorphingLabel\u002Fblob\u002Fmaster\u002FLTMorphingLabel\u002FLTMorphingLabel%2BFall.swift)\n\n\u003Cimg src=\"https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F219689\u002F3491840\u002F173c2238-059e-11e4-9b33-dcd21edae9e2.gif\" width=\"300\" height=\"70\" alt=\"LTMorphingLabel-Fall\"\u002F>\n\n#### [.pixelate](https:\u002F\u002Fgithub.com\u002Flexrus\u002FLTMorphingLabel\u002Fblob\u002Fmaster\u002FLTMorphingLabel\u002FLTMorphingLabel%2BPixelate.swift)\n\n\u003Cimg src=\"https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F219689\u002F3491845\u002F29bb0f8c-059e-11e4-9ef8-de56bec1baba.gif\" width=\"300\" height=\"70\" alt=\"LTMorphingLabel-Pixelate\"\u002F>\n\n#### [.sparkle](https:\u002F\u002Fgithub.com\u002Flexrus\u002FLTMorphingLabel\u002Fblob\u002Fmaster\u002FLTMorphingLabel\u002FLTMorphingLabel%2BSparkle.swift)\n\n\u003Cimg src=\"https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F219689\u002F3508789\u002F31e9fafe-0690-11e4-9a76-ba3ef45eb53a.gif\" width=\"300\" height=\"70\" alt=\"LTMorphingLabel-Sparkle\"\u002F>\n\n> `.sparkle` is built on top of `QuartzCore.CAEmitterLayer`. There is also a SpriteKit-powered version [here](https:\u002F\u002Fgithub.com\u002Flexrus\u002FLTMorphingLabel\u002Fblob\u002Fspritekit-sparkle\u002FLTMorphingLabel\u002FLTMorphingLabel%2BSparkle.swift).\n\n#### [.burn](https:\u002F\u002Fgithub.com\u002Flexrus\u002FLTMorphingLabel\u002Fblob\u002Fmaster\u002FLTMorphingLabel\u002FLTMorphingLabel%2BBurn.swift)\n\n\u003Cimg src=\"https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F219689\u002F3582586\u002F4fb8c52e-0bfe-11e4-9b6f-f070f7f3ab55.gif\" width=\"300\" height=\"70\" alt=\"LTMorphingLabel-Burn\"\u002F>\n\n#### [.anvil](https:\u002F\u002Fgithub.com\u002Flexrus\u002FLTMorphingLabel\u002Fblob\u002Fmaster\u002FLTMorphingLabel\u002FLTMorphingLabel%2BAnvil.swift)\n\n\u003Cimg src=\"https:\u002F\u002Fcloud.githubusercontent.com\u002Fassets\u002F219689\u002F3594949\u002F815cd3e8-0caa-11e4-9738-278a9c959478.gif\" width=\"300\" height=\"70\" alt=\"LTMorphingLabel-Anvil\"\u002F>\n\n## Usage\n\n### UIKit\n\nSince `LTMorphingLabel` is a drop-in replacement, you can use it like any `UILabel` by setting its text property, yielding the default effect (`.scale`):\n\n```swift\nvar exampleLabel = LTMorphingLabel()\nexampleLabel.text = \"This is a test\"\n```\n\n![UIKitExample1](https:\u002F\u002Fgithub.com\u002Fjonathanwuki\u002FLTMorphingLabel\u002Fassets\u002F11484046\u002Fbba7138e-1ef8-4714-8792-f34349434761)\n\nAlternatively, it can be used interactively:\n\n```swift\nvar exampleLabel = LTMorphingLabel()\nexampleLabel.text = \"This is a test\"\nexampleLabel.pause()\n\n\u002F\u002F Call .updateProgress(progress: Float) for interactive animation\n\u002F\u002F Note: In this case, animation will stop at 45% and will not complete\n\u002F\u002F       unless called later with 100 as the `progress` float value.\nexampleLabel.updateProgress(progress: 45.0)\n```\n\nThe effect can be changed by setting the `morphingEffect` property:\n\n```swift\nvar exampleLabel = LTMorphingLabel()\nexampleLabel.text = \"This is a test\"\nexampleLabel.morphingEffect = .burn\n```\n\n![UIKitExample2](https:\u002F\u002Fgithub.com\u002Fjonathanwuki\u002FLTMorphingLabel\u002Fassets\u002F11484046\u002F13ab83a6-7f1f-4aac-b0eb-d6172773a671)\n\n### SwiftUI\n\nTo use `LTMorphingLabel` in SwiftUI, simply declare it and set its text, `effect`, `font`, and `textColor` properties:\n\n```swift\npublic var body: some View {\n    VStack {\n        MorphingText(\n            \"This is a test\",\n            font: UIFont.systemFont(ofSize: 20),\n            textColor: .black,\n            textAlignment: .center\n        )\n        .frame(maxWidth: 200, maxHeight: 100)\n    }\n}\n```\n\nSimilar to its use in UIKit, you can also specify the morphing effect manually (if you do not want to use the default `.scale` effect):\n\n```swift\npublic var body: some View {\n    VStack {\n        MorphingText(\n            \"This is a test\",\n            effect: .burn, \u002F\u002F Specify an alternative morphing effect with this line\n            font: UIFont.systemFont(ofSize: 20),\n            textColor: .black,\n            textAlignment: .center\n        )\n        .frame(maxWidth: 200, maxHeight: 100)\n    }\n}\n```\n\n![LTMorphingLabelSwiftUI](https:\u002F\u002Fuser-images.githubusercontent.com\u002F219689\u002F81505494-2c528c80-9322-11ea-9bdb-b208dd38a5e6.png)\n\n## Requirements\n\n- Xcode 12+\n- iOS 9.0+ (note that SwiftUI requires iOS 13+)\n\n## Installation\n\n### [Swift Package Manager](https:\u002F\u002Fswift.org\u002Fpackage-manager\u002F)\n\nSimply add this library to your package manifest or follow instructions on adding a package dependency [using Xcode here](https:\u002F\u002Fdeveloper.apple.com\u002Fdocumentation\u002Fxcode\u002Fadding_package_dependencies_to_your_app).\n\n```swift\n.package(\n    url: \"https:\u002F\u002Fgithub.com\u002Flexrus\u002FLTMorphingLabel.git\",\n    .branch(\"master\")\n)\n```\n\n### [CocoaPods](http:\u002F\u002Fcocoapods.org)\n\nAdd `pod 'LTMorphingLabel'` to your Podfile or follow instructions to add dependencies [here](https:\u002F\u002Fguides.cocoapods.org\u002Fusing\u002Fusing-cocoapods.html).\n\n### [Carthage](https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage)\n\nAdd `github \"lexrus\u002FLTMorphingLabel\"` to your Cartfile or follow instructions on adding frameworks [here](https:\u002F\u002Fgithub.com\u002FCarthage\u002FCarthage#adding-frameworks-to-an-application).\n\n### [XCFramework](https:\u002F\u002Fdeveloper.apple.com\u002Fvideos\u002Fplay\u002Fwwdc2019\u002F416\u002F)\n\nA pre-compiled `xcframework` file is available on the [Releases](https:\u002F\u002Fgithub.com\u002Flexrus\u002FLTMorphingLabel\u002Freleases) page.\n\n### [Accio](https:\u002F\u002Fgithub.com\u002FJamitLabs\u002FAccio)\n\n1. Add this library to your package manifest (see [Swift Package Manager](#swift-package-manager))\n\n2. Update your target dependencies to include `LTMorphingLabel`:\n\n```swift\n.target(\n    name: \"App\",\n    dependencies: [\n        \"LTMorphingLabel\",\n    ]\n),\n```\n\n3. Run `accio update`.\n\n## Unit Testing\n\nClone the repo by running `git clone https:\u002F\u002Fgithub.com\u002Flexrus\u002FLTMorphingLabel.git`, then open the project with Xcode and press Cmd + U (or, in the menu bar, click Product > Build for > Testing).\n\n## Apps Using `LTMorphingLabel`\n\n- [Idea](https:\u002F\u002Fitunes.apple.com\u002Fapp\u002Fid1286758943) by [Igor Matyushkin](https:\u002F\u002Fgithub.com\u002Figormatyushkin014)\n- [Speedo[kilo]meter](https:\u002F\u002Fitunes.apple.com\u002Fit\u002Fapp\u002Fspeedo-kilo-meter\u002Fid1228840413?mt=8) by [Alberto Pasca](http:\u002F\u002Fwww.albertopasca.it\u002Fwhiletrue)\n- [The Met Challenge](https:\u002F\u002Fitunes.apple.com\u002Fus\u002Fapp\u002Fthe-met-challenge\u002Fid917662781) by [@lazerwalker](https:\u002F\u002Fgithub.com\u002Flazerwalker)\n- [Uther](https:\u002F\u002Fgithub.com\u002Fcallmewhy\u002FUther) by [@callmewhy](https:\u002F\u002Fgithub.com\u002Fcallmewhy)\n- [Reax](https:\u002F\u002Fitunes.apple.com\u002Fus\u002Fapp\u002Freax-witness-2016-here.-now.\u002Fid1076183758?ls=1&mt=8) by Reax Inc\n- [Puzzpic](https:\u002F\u002Fitunes.apple.com\u002Fus\u002Fapp\u002Fpuzzpic\u002Fid1092871121) by [Moath Othman](http:\u002F\u002Fmoathothman.com)\n- [Drops](http:\u002F\u002Flanguagedrops.com) by [Mark Aron Szulyovszky](https:\u002F\u002Fgithub.com\u002Fitchingpixels)\n- [Setgraph Workout Log](https:\u002F\u002Fitunes.apple.com\u002Fus\u002Fapp\u002Fsetgraph-workout-log\u002Fid1209781676?mt=8) by [Arturo Lee](https:\u002F\u002Fgithub.com\u002FArturoLee)\n- [Nihon](https:\u002F\u002Fitunes.apple.com\u002Fapp\u002Fid1315486029) by [KyXu](https:\u002F\u002Fgithub.com\u002FOpenMarshall)\n- [Lightsync](https:\u002F\u002Fitunes.apple.com\u002Fapp\u002Fid1463390406?mt=8&ct=ghltml) by [Marcel Braun](https:\u002F\u002Fgithub.com\u002Fthatmarcel)\n- [Find](https:\u002F\u002Fapps.apple.com\u002Fapp\u002Ffind-command-f-for-camera\u002Fid1506500202) by [A. Zheng](https:\u002F\u002Fgithub.com\u002Faheze)\n\n## Third-Party Ports\n\n### Android\n\nThe Android port of this library is available [here](https:\u002F\u002Fgithub.com\u002Fhanks-zyh\u002FHTextView).\n\n### React Native\n\nThe React Native port of this library is available [here](https:\u002F\u002Fgithub.com\u002FprscX\u002Freact-native-morphing-text).\n\n## License\n\nThis code is distributed under the terms and conditions of the MIT license.\n","LTMorphingLabel 是一个用 Swift 编写的 UILabel 子类，旨在为文本标签添加优雅的变形效果。该项目提供了多种动画效果，如缩放、蒸发、掉落、像素化、闪光和燃烧等，使开发者能够轻松地为 iOS 应用中的文本元素增添动态变化。其核心功能在于通过简单的 API 调用来实现复杂的视觉效果，同时支持 UIKit 和 SwiftUI 框架，便于集成到不同类型的应用中。LTMorphingLabel 适用于需要增强用户界面互动性和吸引力的场景，例如在游戏、教育软件或任何希望提升用户体验的移动应用中。",2,"2026-06-11 03:08:39","top_language"]