Icon

`RVS_UIKit_Toolbox`

一组基本的 UIKit 工具,用于 Swift iOS 应用开发。

概述

此软件包提供了一些标准 UIKit 类的扩展,用于抽象一些更常见的软件任务。

实现

获取方式

Swift Package Manager

最常见的集成方法几乎肯定是使用 Swift Package Manager (SPM)

可以通过以下 URI 从 GitHub 访问该软件包

只需将软件包集成到您的项目中,并在使用其扩展的文件中导入该模块即可

import RVS_UIKit_Toolbox

Carthage

您还可以使用 Carthage(由 GitHub 提供的通用软件包管理器)获取该软件包。

要导入该软件包,请将以下行添加到您的 cartfile

github "RiftValleySoftware/RVS_UIKit_Toolbox"

如果您选择构建模块,您还需要将模块导入到使用扩展的文件中

import RVS_UIKit_Toolbox

或者,整个扩展集都可以在单个源文件中使用,您可以将其直接集成到主模块中

对于 Carthage,它将在 Carthage/Checkins/RVS_UIKit_Toolbox/Sources/RVS_UIKit_Toolbox 目录中可用。

如果您这样做,该文件将直接集成到主模块中,因此您无需 import 该文件。

Git 子模块

最后,您可以使用 Git 子模块将模块简单地包含到您的项目中,该子模块可使用上述 Swift Package Manager 部分中引用的两个 URI(SSL 或 HTTPS)获取。

如果您这样做,您应该像 Carthage 部分中概述的那样,将源文件直接包含到您的项目中。

如何使用

将软件包添加到项目并导入模块(或将源文件直接集成到主模块)后,扩展程序会立即在基本 UIKit 类中可用。 扩展程序如下所示

UITabBarController

这仅将一个方法添加到标准 UIKit UITabBarController 类

此方法的目的是允许轻松快捷地自定义选项卡栏的颜色。

UIViewController

这添加了许多计算属性和一个方法,用于处理 Responders

类计算属性

这些被定义为“类”属性,因此您不需要实例即可使用它们。

系统状态标志实例计算属性

这些是实例属性,而不是类属性

这些仅在实例中可用(非类)

设备实例计算属性

这是一个返回设备屏幕纵横比的属性

视图层次结构实例计算属性

这将返回导航堆栈中紧靠此视图控制器“下方”的视图控制器

响应器相关

这会递归查找当前选定的响应器(如果没有响应器,则为 nil)

此方法还将结束视图控制器的编辑

UIView

IBInspectable 计算实例属性
响应器相关
自动布局实例方法

UIImage

类函数
便捷初始化器
图像合成实例计算属性
像素信息实例方法
尺寸调整实例方法

UIColor

便捷初始化器
颜色信息实例计算属性
颜色计算实例方法

RVS_PlaceholderTextView

这是标准 UITextView 类的子类。 它添加了提供“占位符”的功能,其方式与 UITextField 类相同。

测试工具应用

由于该软件包是 UIKit 扩展,因此 单元测试的效果不如测试工具。 我们提供了一个相当全面的测试工具应用程序,它不仅提供了出色的代码覆盖率,还可以作为实际实现的模板。

这是测试工具应用程序的源代码。 它是 Xcode 工作区中的目标之一。

该应用程序是一个相当基本的“选项卡式”应用程序,它显示 5 个选项卡;每个选项卡对应于一个扩展类

图 1:UITabBarController 图 2:UIViewController 图 3:UIView 图 4:UIImage 图 5:UIColor
Figure 1 Figure 2 Figure 3 Figure 4 Figure 5

选项卡 1 (UIViewController) 还有一个导航堆栈,允许您打开第二个屏幕,显示对上一个视图控制器和响应器属性的访问

图 6:UIViewController 导航屏幕 图 7:UIViewController 导航屏幕(带焦点) 图 8:UIViewController 导航屏幕(下一个屏幕)
Figure 6 Figure 7 Figure 8

该应用程序的编写方式就好像它是一个“已交付”的应用程序一样,并且具有出色的代码质量、本地化和清晰的实现。 它应该是一个很好的使用示例。

LICENSE

© Copyright 2022, The Great Rift Valley Software Company

MIT 许可证

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

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

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