Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

👻 A UILabel subclass that adds a typewriting animation effect

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md
NotificationsYou must be signed in to change notification settings

wibosco/GhostTypewriter

Repository files navigation

Build StatusSwiftLicensePlatformTwitter

AUILabel subclass that adds a typewriting animation effect - as if a 👻 was typing it directly on your user's device!

GhostTypewriter was inspired by the following posthere.

Installation

To integrateGhostTypewriter into your Xcode project using CocoaPods, specify it in yourPodfile:

source'https://github.com/CocoaPods/Specs.git'platform:ios,'10.0'pod'GhostTypewriter'

Then, run the following command:

$ pod install

CocoaPods 1.1.1+ is required to buildGhostTypewriter.

Swift Package Manager is a dependency manager built into Xcode.

If you are using Xcode 11 or higher, go toFile -> Add Packages... and enter package repository URLhttps://github.com/wibosco/GhostTypewriter into the search bar, then follow the instructions.

Usage

Animated Typing

TypewriterLabel is a subclass ofUILabel and where the animation (magic) happens. It works by taking advantage of theattributedText property on the label and changing the properties of the text content to gradually expose the text using an animation similar to what you get on a mechanical typewriter.

ATypewriterLabel instance when added as a subview will hide it's content.

Starting

Starting the animation will cause the content of the label to be reveal one character at a time.

How quickly each character is revealed is controlled by setting thetypingTimeInterval property.

There are two ways to start an animation: with and without a completion closure.

With a completion closure:

import GhostTypewriter@IBActionfunc startAnimationButtonPressed(_ sender:Any){    titleLabel.startTypewritingAnimation{        //Implement your completion closure body here...}}

Without a completion closure:

import GhostTypewriter@IBActionfunc startAnimationButtonPressed(_ sender:Any){    titleLabel.startTypewritingAnimation()}

Stopping

Stopping an animation causes the characters that have been revealed to remain as is and no new characters being revealed.

import GhostTypewriter@IBActionfunc stopAnimationButtonPressed(_ sender:Any){    titleLabel.stopTypewritingAnimation()}

Resetting

Resetting an animation causes all characters to be hidden.

import GhostTypewriter@IBActionfunc resetAnimationButtonPressed(_ sender:Any){    titleLabel.resetTypewritingAnimation()}

It's important to note that resetting anTypewriterLabel instance does not cause the animation to restart instead you need to callrestartTypewritingAnimation().

Restarting

Restarting an animation causes all characters to be hidden and for the animation to begin from the start again.

There are two ways to start an animation: with and without a completion closure.

Without a completion closure:

import GhostTypewriter@IBActionfunc restartAnimationButtonPressed(_ sender:Any){    titleLabel.restartTypewritingAnimation()}

With a completion closure:

import GhostTypewriter@IBActionfunc restartAnimationButtonPressed(_ sender:Any){    titleLabel.restartTypewritingAnimation{        //Implement your completion closure body here...}}

Completing

Completing an animation causes all characters to instantly be revealed.

import GhostTypewriter@IBActionfunc completeAnimationButtonPressed(_ sender:Any){    titleLabel.completeTypewritingAnimation()}

Animation Options

Style

By defaultTypewriterLabel reveals the content as it animates however this can be changed to hiding the content by setting theanimationStyle property to.hide:

import GhostTypewriteroverridefunc viewDidLoad(){    super.viewDidLoad()    titleLabel.animationStyle=.hide}

animationStyle is defaulted to.reveal

Direction

By defaultTypewriterLabel animates from character index0 ton-1 however this can be changed to go from charcter indexn-1 to0 by setting theanimationDirection to.backward:

import GhostTypewriteroverridefunc viewDidLoad(){    super.viewDidLoad()    titleLabel.animationDirection=.backward}

animationDirection is defaulted to.forward.

Adjusting Animation Timing

Each character of aTypewriterLabel instance is revealed at a pace set by thetypingTimeInterval property.

typingTimeInterval defaults to0.1 second.

import GhostTypewriteroverridefunc viewDidLoad(){    super.viewDidLoad()    titleLabel.typingTimeInterval=0.3}

It's important to note that setting/changingtypingTimeInterval after an animation has been started, has no affect on the timing of that animation.

Storyboards

AsTypewriterLabel is contained in a pod, when using it with storyboards you will need to set theModule field toGhostTypewriter.

Migrating from v1 to v2

Version2.0.0 ofGhostTypewriter contains breaking changes.

  • cancelTypewritingAnimation() now useresetTypewritingAnimation().
  • cancelTypewritingAnimation(clearText: true) now useresetTypewritingAnimation().
  • cancelTypewritingAnimation(clearText: false) now usestopTypewritingAnimation().

Example

GhostTypewriter comes with anexample project to provide more details than listed above.

Found an issue?

Please open anew Issue here if you run into a problem specific to GhostTypewriterLabel, have a feature request, or want to share a comment.

Pull requests are encouraged and greatly appreciated! Please try to maintain consistency with the existing code style. If you're considering taking on significant changes or additions to the project, please communicate in advance by opening a new Issue. This allows everyone to get onboard with upcoming changes, ensures that changes align with the project's design philosophy, and avoids duplicated work.

About

👻 A UILabel subclass that adds a typewriting animation effect

Topics

Resources

License

MIT, MIT licenses found

Licenses found

MIT
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Packages

No packages published

Contributors4

  •  
  •  
  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp