نسخهکیت
ویژگیها
📱 支持iPhone和iPad。
😋 美观。
🌓 支持暗黑模式。
🥳 用户友好。
预览!
这会做什么?!
使用这个微小的库,您可以以列表的形式展示每个版本的变化。同样的,您也可以事先向用户介绍未来的更新!
如何使用?
第一步. 安装
将以下语句添加到项目中的 Podfile
文件:
pod 'NoskheKit'
在执行 pod install
命令后,在需要使用的地方,加入 import NoskheKit
。
第二步. 显示更改
展示变更控制器的主方法具有以下签名:
NoskheKit.presentChangesController(
from sourceController : UIViewController,
withData versionsData : NKVersionsData,
andUIConfiguration uiConfiguration : NKUIConfiguration
)
该方法的参数如下:
- 参数
sourceController
:类型为UIViewController
,表示源视图控制器。 - 参数
versionsData
:类型为NKVersionsData
。该模型向库提供更改列表的必要信息。 - 参数
uiConfiguration
:类型为NKUIConfiguration
。该模型准备与用户界面相关的设置。通过使用此模型,您可以自定义用户界面。
模型
NKVersionsData
模型 此模型提供用于显示更改列表所需的数据。为此模型的构建,已准备好几种方法
1️⃣ 构造函数 init?(plistFileConfiguration: PlistFileConfiguration)
使用 PlistFileConfiguration
类型的元素准备数据。实际上,此构造函数接收一个参数,该参数定义了具有变更列表的 Plist 文件的选项。
- 由于可能不存在文件或未正确配置,因此此构造函数定义为
init?
。 - 如果发生错误或出现特定条件,错误消息会在
Console
中打印。 - 用于有效 Plist 文件的架构如下。如有必要,您可以在项目 Example 中查看
Versions-EN.plist
文件。
Root: Array - Item 0 : Dictionary - number : String - changes : Array - Item 0 : String - Item 1 : String - ... - ...
2️⃣ 构造函数 init(from decoder: Decoder)
模型 NKVersionsData
实现了 Decodable
协议。因此,我们可以获取 API 的变更列表,并将接收的数据解码为此模型。
- 用于此构造函数的有效 JSON 架构如下。
{
items: [
{
number: 'string',
changes: [
'string',
'string',
...
]
},
...
]
}
PlistFileConfiguration
模型 此模型用于考虑Plist文件,以便为显示更改列表准备数据。
- 此模型的构造函数为
init(bundle: Bundle, fileName: String)
,其中第一个参数是包,第二个参数是指定的Plist文件名。 - 为此类型提供了一个
default
选项,它将使用main
包中的Versions
文件。
NKUIConfiguration
模型 此模型负责设置用户界面。此模型的特征如下
class NKUIConfiguration {
var isRightToLeft: Bool = false
var submitReviewButtonStatus: SubmitReviewButtonStatus = .notExist
var versionsDisplayConfiguration: VersionsDisplayConfiguration = .init()
}
- 特征
isRightToLeft
:指定视图是否配置为从右到左的语言。 - 特征
submitReviewButtonStatus
:准备“提交评论”按钮的设置。 - 特征
versionsDisplayConfiguration
:此特征指定显示版本的相关设置。
SubmitReviewButtonStatus
模型 实际上是一个enum
,具有以下case
。
- 选项
notExist
:不显示“提交评论”按钮。 - 选项
exist(configuration: Configuration)
:“提交评论”按钮显示,并使用configuration
准备显示设置。
SubmitReviewButtonStatus.Configuration
模型 此模型如下
class Configuration {
let title : String
var font : UIFont
var backgroundColor : UIColor
var textColor : UIColor
}
- Besides
title
,the rest of the properties have default values.
CurrentVersionDisplayConfiguration
和 OtherVersionDisplayConfiguration
当前版本显示配置 这两个模型用于设置显示版本信息。前者用于显示当前版本的变化,后者用于显示其他版本的变化。
这两个模型结构相似,只有一个区别:前者还有一个用于显示“新特性”的属性。
它们的整体结构如下
class ... {
var whatsNew : WhatsNewUIConfiguration? //ONLY in CurrentVersionDisplayConfiguration
var titleColor : UIColor
var titleFont : UIFont
var changesColor : UIColor
var changesFont : UIFont
}
- 所有属性都有默认值。
WhatsNewUIConfiguration
新特性UI配置 用于设置“新特性”的显示。它只有两个属性。
struct WhatsNewUIConfiguration {
var text : String
var textColor : UIColor
}