UnitInterval:一个 Swift 属性包装器

Twitter: @cypher_poet

一个 Swift 属性包装器,用于自动将浮点值限制在 [0,1] 的闭合范围内。

安装

Xcode 项目

选择 File -> Swift Packages -> Add Package Dependency 并输入 https://github.com/CypherPoet/UnitIntervalPropertyWrapper

Swift Package Manager 项目

您可以将 UnitIntervalPropertyWrapper 作为包依赖项添加到您的 Package.swift 文件中

let package = Package(
    //...
    dependencies: [
        .package(
            url: "https://github.com/CypherPoet/UnitIntervalPropertyWrapper",
            .upToNextMinor(from: "0.1.0")
        ),
    ],
    //...
)

然后,在您任何需要它的包目标中,将 UnitIntervalPropertyWrapper 称为 “target dependency” 。

targets: [
    .target(
        name: "YourLibrary",
        dependencies: [
          "UnitIntervalPropertyWrapper",
        ],
        ...
    ),
    ...
]

然后,只需在您想使用它的任何地方 import UnitIntervalPropertyWrapper 即可。

用法

基本用法示例:

import UnitIntervalPropertyWrapper

struct AwesomePhoto {
    @UnitInterval
    public var opacity: Double

    @UnitInterval
    public var animationProgress: Double = 0.0
}

var photo = AwesomePhoto(opacity: 100)

photo.opacity             // 1.0
photo.animationProgress   // 0.0

photo.animationProgress = -2.2

photo.animationProgress  // 0.0

此外,您可以随意使用 此项目的 Xcode Playground 以进一步探索。

贡献

非常欢迎对 UnitIntervalPropertyWrapper 做出贡献。查看一些 issue templates 以获取更多信息。

💻 开发

要求

📜 生成文档

文档由 Jazzy 生成。安装说明可以在 这里 找到,一旦您设置好,只需从命令行运行 jazzy 即可生成文档。

📝 请注意,这只会生成 docs 文件夹供您在本地查看。此文件夹已被 git 忽略,因为存在一个 action 来自动在根级别生成文档并在项目的 gh-pages 分支上提供它们。

🏷 许可证

UnitIntervalPropertyWrapper 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件