一组基本的 UIKit 工具,用于 Swift iOS 应用开发。
此软件包提供了一些标准 UIKit 类的扩展,用于抽象一些更常见的软件任务。
最常见的集成方法几乎肯定是使用 Swift Package Manager (SPM)。
可以通过以下 URI 从 GitHub 访问该软件包
git@github.com:RiftValleySoftware/RVS_UIKit_Toolbox.git
https://github.com/RiftValleySoftware/RVS_UIKit_Toolbox.git
只需将软件包集成到您的项目中,并在使用其扩展的文件中导入该模块即可
import RVS_UIKit_Toolbox
您还可以使用 Carthage(由 GitHub 提供的通用软件包管理器)获取该软件包。
要导入该软件包,请将以下行添加到您的 cartfile
github "RiftValleySoftware/RVS_UIKit_Toolbox"
如果您选择构建模块,您还需要将模块导入到使用扩展的文件中
import RVS_UIKit_Toolbox
或者,整个扩展集都可以在单个源文件中使用,您可以将其直接集成到主模块中
对于 Carthage,它将在 Carthage/Checkins/RVS_UIKit_Toolbox/Sources/RVS_UIKit_Toolbox
目录中可用。
如果您这样做,该文件将直接集成到主模块中,因此您无需 import
该文件。
最后,您可以使用 Git 子模块将模块简单地包含到您的项目中,该子模块可使用上述 Swift Package Manager 部分中引用的两个 URI(SSL 或 HTTPS)获取。
如果您这样做,您应该像 Carthage 部分中概述的那样,将源文件直接包含到您的项目中。
将软件包添加到项目并导入模块(或将源文件直接集成到主模块)后,扩展程序会立即在基本 UIKit 类中可用。 扩展程序如下所示
这仅将一个方法添加到标准 UIKit UITabBarController 类
此方法的目的是允许轻松快捷地自定义选项卡栏的颜色。
这添加了许多计算属性和一个方法,用于处理 Responders。
这些被定义为“类”属性,因此您不需要实例即可使用它们。
biometricType
isHighContrastMode
isReducedTransparencyMode
isVoiceOverRunning
isICloudAvailable
screenAspect
这些是实例属性,而不是类属性
这些仅在实例中可用(非类)
这是一个返回设备屏幕纵横比的属性
这将返回导航堆栈中紧靠此视图控制器“下方”的视图控制器
这会递归查找当前选定的响应器(如果没有响应器,则为 nil)
此方法还将结束视图控制器的编辑
这是标准 UITextView
类的子类。 它添加了提供“占位符”的功能,其方式与 UITextField
类相同。
由于该软件包是 UIKit 扩展,因此 单元测试的效果不如测试工具。 我们提供了一个相当全面的测试工具应用程序,它不仅提供了出色的代码覆盖率,还可以作为实际实现的模板。
这是测试工具应用程序的源代码。 它是 Xcode 工作区中的目标之一。
该应用程序是一个相当基本的“选项卡式”应用程序,它显示 5 个选项卡;每个选项卡对应于一个扩展类
图 1:UITabBarController | 图 2:UIViewController | 图 3:UIView | 图 4:UIImage | 图 5:UIColor |
---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
选项卡 1 (UIViewController) 还有一个导航堆栈,允许您打开第二个屏幕,显示对上一个视图控制器和响应器属性的访问
图 6:UIViewController 导航屏幕 | 图 7:UIViewController 导航屏幕(带焦点) | 图 8:UIViewController 导航屏幕(下一个屏幕) |
---|---|---|
![]() |
![]() |
![]() |
该应用程序的编写方式就好像它是一个“已交付”的应用程序一样,并且具有出色的代码质量、本地化和清晰的实现。 它应该是一个很好的使用示例。
© Copyright 2022, The Great Rift Valley Software Company
特此授予任何人免费获得本软件及相关文档文件(“软件”)副本的许可,以处理本软件,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,并允许向其提供本软件的人员遵守以下条件
以上版权声明和本许可声明应包含在本软件的所有副本或重要部分中。
本软件按“原样”提供,不作任何形式的明示或暗示的担保,包括但不限于适销性、特定用途适用性和非侵权性的担保。 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同、侵权或其他方面的诉讼中,由本软件或本软件的使用或其他处理方式引起的、与之相关的或与之相关的。