Icon

RVS_RetroLEDDisplay

简单、经典、可定制的数字显示。

概述

这是一个 UIKit 小部件,可以显示“经典” LED 显示屏(七段式、简单数字显示屏)。它通过一个蒙版显示可自定义的背景来实现这一点,该蒙版模拟了老式 LED 显示屏的“外观和感觉”。

这被设计为一个“美学”小部件,供希望模仿“旧时代”显示效果的应用程序使用,并且希望比“数字”字体提供更多的真实感和自定义性。

话虽如此,字体在内容方面为您提供了很大的灵活性,您可能会觉得 RVS_MaskButton 模块也很有趣。RVS_MaskButton 的可定制性不如这个小部件,但它允许您以非常相似的方式使用任何您想要的字体。

您可以将小部件指定为一组水平连接的数字,并将其视为一个“整体”,并能够更改显示屏的基数(数字基数)。

此小部件专门用于显示老式 LED 数字。

它使用矢量绘图,因此不需要资源。

它解决了什么问题?

此小部件专门为重写 AmbiaMara Timer App 而设计。该应用程序呈现 经典的“真空荧光”风格显示屏

了解更多

以下屏幕截图来自此软件包中包含的 Test Harness Project

可以使用图像和渐变来提供许多自定义外观

图 1:标准外观 图 2:使用渐变
Figure 1 Figure 2
图 3:“活动”段中的图像 图 4:以及“非活动”段中的图像
Figure 3 Figure 4

您还可以拥有空白的“非活动”段,并应用显示屏的“倾斜”

图 5:空白的“非活动”段 图 6:向右倾斜 图 7:向左倾斜
Figure 5 Figure 6 Figure 7
图 8:长倾斜
Figure 8

要求

仅限 Swift 的 UIKit 模块

该模块是一个仅限 SwiftSwift Package Manager (SPM) 模块。它是一个 UIKit 小部件。

依赖项

图像类本身没有依赖项,但测试工具依赖于 RVS_Generic_Swift_Toolbox 模块

测试工具还使用了一些从 ilonitta 的 Paisley Patterns 派生的图案图像。使用该软件包不需要这些。

用法

在哪里获取

为了使用这个类,您应该将其安装为 Swift Package Manager (SPM) 模块。

您可以使用 SPM 通过引用其 GitHub Repo URI 来加载项目作为依赖项(SSH:git@github.com:RiftValleySoftware/RVS_RetroLEDDisplay.git,或 HTTPS:https://github.com/RiftValleySoftware/RVS_RetroLEDDisplay.git)。

安装模块后,您应将其包含在需要访问它的文件中,如下所示

import RVS_RetroLEDDisplay

您可以通过 Storyboard Editor 初始化,也可以直接以编程方式初始化。

Storyboard 编辑器设置

首先拖入一个 Image View (UIImageView),然后将类和模块设置为 RVS_RetroLEDDisplay

图 9:将对象作为 UIImage 拖入 图 10:设置类和模块 图 11:可检查的属性
Figure 9 Figure 10 Figure 11

编程方式设置

您可以像初始化 UIImageView 的实例一样,简单地初始化 RVS_RetroLEDDisplay 的实例。如果您使用图像初始化它(设置 image 属性),那么该图像将用作“非活动”段的“填充”。

您还可以通过设置 onImage 属性,为显示屏的“活动”段提供图像。

如果您不提供图像,则可以指定颜色(包括渐变),用于显示。

“活动”和“非活动”背景彼此独立。例如,您可以为“非活动”段设置渐变,为“活动”段设置图像。

它还可以应用“倾斜”,使其具有 LED 数字显示屏的经典“倾斜”效果。

动画持续时间(秒)

这允许您在更改值时指定一个短暂的“淡入淡出”动画(使其行为更像“经典” LED)。如果您将其保留为默认值,则小于四分之一秒。将其设置为 0 以禁用动画。

基数(数字基数)

该小部件支持二进制 (Base-2)、八进制 (Base-8)、十进制 (Base-10) 和十六进制 (Base-16) 编号系统。您可以通过设置 radix 属性 来告诉它使用哪个。

小部件值是一个整数(有符号)。它将以小部件设置的任何基数显示。此外,该值将在最大可显示值处被裁剪,具体取决于基数和位数。

您可以通过 value 属性 设置值。

-1 和 -2 是特殊值

不显示负数。为了显示负数,您应该在另一个用于显示数字的小部件前面放置一个单位数小部件,并使其显示 -1 值。

倾斜

“倾斜”是小部件的“斜度”。它通过将 skew 属性(浮点数)设置为 -1...1 范围内的值来设置。零表示不倾斜。负数表示“向左倾斜”,正数表示“向右倾斜”。

位数

您可以指定小部件中可用的位数。这些将被视为数字值的显示,受基数和可用位数的限制。最小值为 1,没有上限(但不要太疯狂。这是一个有符号整数,因此存在限制)。

您可以通过设置 numberOfDigits 属性 来指定位数。

注意 您可能需要注意设置这些值的顺序。例如,如果您从两位数开始,以 16 为基数,则在将位数增加到 3 位(或更多)之前,您将无法设置值 256(100 十六进制)。此外,基数属性会影响最大值。例如,如果值为 255(FF 十六进制),并且基数为 16,则在不先增加位数的情况下将基数切换为 10,将导致值截断为 99。

外观

更改颜色时,图像的存在会取代渐变开始和结束槽中的任何颜色。

如果您想要纯色,可以使用一个小的图像,放大后具有纯色,或者您可以仅为渐变定义一个开始颜色。

Test Harness 项目

Test Harness 是一个非常简单的单屏应用程序,具有许多控件,旨在激发小部件的各个方面。

图 12:Test Harness 应用程序
Figure 12

控件包括(从上到下)

了解更多

该软件包具有完整的 DocC 支持,因此它应该可以完美地集成到您的项目中。

这是该软件包的技术文档。它讨论了公开的公共 API 以及您可以访问的各种属性。

这是 Test Harness 项目。它被设计为一个简单的项目,应该为使用该软件包提供出色的指导。

法律声明

使用 ilonitta 的佩斯利花纹需要署名

这些图案仅在 Test Harness 中使用,因此使用该软件包不需要署名。

MIT 许可证

特此授予任何获得本软件和相关文档文件(“软件”)副本的人员免费许可,以不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,并允许向获得本软件的人员提供软件,但须符合以下条件

上述版权声明和本许可声明应包含在本软件的所有副本或重要部分中。

本软件按“原样”提供,不作任何形式的明示或暗示的保证,包括但不限于适销性、特定用途的适用性和不侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中,因本软件或本软件的使用或其他交易而引起或与之相关的任何索赔、损害或其他责任。