Wordy 1.4

Wordy 1.4

Igor Matyushkin维护。




Wordy 1.4

Wordy

概览

Wordy是一个功能强大的文本处理器,为在String对象中管理内容提供了一种简单的方法。

如何开始

  • 复制Source文件夹的内容到您的项目中。

或者

  • 使用Wordy Cocoapod

要求

  • iOS 9及以上
  • Xcode 9及以上
  • Swift 4.1

用法

一切从一个Wordy类开始。这是您进入该库提供所有工具的入口点。

文本效果

让我们从一个非常简单的文本效果示例开始

let filteredText = Wordy.effects(for: "Hi!")
    .apply(effect: InversionEffect())
    .result

print(filteredText) // "!iH"

它是这样工作的: Wordy.effects(for: _) 给你一个为你的源文本配置的 EffectManager 实例。然后,你可以应用一些效果,并通过 .result 调用检索最终文本。

在上面的示例中,InversionEffect 将应用于整个字符串。同时,你也可以将效果应用于特定的子串

let filteredText = Wordy.effects(for: "Hi!")
    .apply(effect: InversionEffect(), startIndex: 0, endIndex: 1)
    .result

print(filteredText) // "iH!"

你可以添加任意多个效果

let filteredText = Wordy.effects(for: "This text will be rotated")
    .apply(effect: RotationEffect(rotation: .inverted))
    .apply(effect: InversionEffect())
    .result

print(filteredText) // "рǝʇɐʇоɹ ǝq llıм ʇxǝʇ sıɥʇ"

案例效果

CaseEffect 类表示。改变整个文本或特定位置的字母的大小写。

构造函数示例

CaseEffect(textCase: .firstUpperNextLower)

TextCase 是唯一设置,用于定义 CaseEffect 的行为。

旋转效果

RotationEffect 类表示。旋转字母。例如,

p 变成 d

h 变成 ɥ

RotationEffect 有两个可用的构造函数。构造函数的详细版本

RotationEffect(rotation: .inverted, caseSensitive: true)

第一个参数是一个 TextRotation 值,它定义了旋转符号的方式。

布尔类型的第二个参数定义旋转算法是否区分大小写。如果等于 false,某些大写符号在旋转后可能变为小写。

第二个构造函数是第一个构造函数的简化版本

RotationEffect(rotation: .inverted)

默认情况下,它是区分大小写的。通常,除了需要更多灵活性之外,使用第二个构造函数通常是足够的。

逆转效果

InversionEffect 类表示。翻转文本从右到左,所以

Hi!

变成

!iH

InversionEffect 的构造函数非常简单,不需要任何参数

InversionEffect()

转写

转写示例

let transliteratedText = Wordy.transliterate(from: .russian, to: .english)
    .result(for: "Привет!")

print(transliteratedText) // "Privet!", which means "Hi!"

目前支持的语言包括

  • 英语
  • 俄语

选项

文本大小写

TextCase被用作CaseEffect实例的设置。可用值有

  • allUpper - 将整个文本转换为大写。
  • allLower - 将整个文本转换为小写。
  • firstUpperNextLower - 第一个字符大写,其余文本小写。
  • firstLowerNextUpper - 第一个字符小写,其余文本大写。
  • alternating(firstUppercased: Bool):如果firstUppercasedtrue,奇数位字符大写,偶数位字符小写。否则,奇数位字符小写,偶数位字符大写。

文本旋转

TextRotation定义字符旋转的条件。可用值

  • normal:将所有字符旋转到正常位置。这意味着ʎ会变为y,而h将保持h
  • upsideDown:将所有字符旋转到颠倒的位置。在这种情况下,y将变为ʎ,但ɥ将保持不变。
  • inverted:将正常符号旋转的同时,旋转的符号变为正常。因此,y变为ʎ,而ɥ将变为h

语言

Language类型用于转写。可能的值

  • english
  • russian

插件

您可以在不修改库的情况下扩展 Wordy 的功能。无需发送拉取请求,只需创建自己的插件即可。

每个插件都是一个名为 Plugin 类的子类。请看下面的示例

class Repeat: Plugin {

    override func result() -> String {
        return self.sourceText
            + self.sourceText
    }
}

这是一个重复源文本两次的插件。您需要实现的就是返回经过过滤的文本的 result() 方法,这是一个您应该在插件实现中放置逻辑的核心。要访问源文本,只需使用 self.sourceText

现在让我们尝试使用这个插件

let repeatedText = Wordy.plugin(Repeat.self, for: "Test.")
    .result()

print(repeatedText) // "Test.Test."

如您所见,创建和使用 Wordy 插件非常简单。您可以将插件作为独立库发布,或者如果希望它被包含在库中,则作为拉取请求发送。

许可协议

Wordy 适用于 Apache 2.0 许可协议。请参阅 LICENSE 文件获取更多信息。