AcknowList

致谢列表屏幕,显示许可证列表,例如来自 CocoaPodsSwift Package Manager 依赖项的许可证。

Platform iOS tvOS watchOS macOS visionOS Build & Test Swift 5 Swift Package Manager CocoaPods compatible MIT license

也适用于 Objective-C,使用 VTAcknowledgementsViewController

AcknowList screenshots

功能特性

安装

CocoaPods

  1. pod 'AcknowList' 添加到您的 Podfile 中。
  2. 运行 pod install
  3. 将 CocoaPods 生成的 Pods-#target#-acknowledgements.plist 文件添加到您的主目标:从 Pods/Target Support Files/Pods-#target#/ 文件夹拖放到您的 Xcode 项目中(不要复制文件,保持 Copy items if needed 未选中状态)。

Swift Package Manager

AcknowList 可以通过 Swift Package Manager 安装(本地化资源需要 Xcode 12)。

  1. 点击 FileAdd Packages…
  2. 输入 https://github.com/vtourraine/AcknowList
  3. 选择您想要使用的版本。
  4. 将 Xcode 生成的 Package.resolved 文件添加到您的主目标。从文件夹拖放到您的 Xcode 项目中(不要复制文件,保持 Copy items if needed 未选中状态)。
    • 对于单个 Xcode 项目,该文件位于 [appName].xcodeproj/project.xcworkspace/xcshareddata/swiftpm/
    • 对于 Xcode 工作区(例如使用 CocoaPods),该文件位于 [appName].xcworkspace/xcshareddata/swiftpm/

初始化

AcknowListViewController 实例通常被推送到现有的 UINavigationController 中。

let viewController = AcknowListViewController()
navigationController.pushViewController(viewController, animated: true)

默认情况下,控制器将尝试从 CocoaPods plist 文件(通过猜测其基于 bundle 名称的位置)以及 Package.resolved 文件加载致谢。

您还可以使用自定义文件名或 URL 初始化视图控制器。

let viewController = AcknowListViewController(fileNamed: "Pods-AcknowExample-acknowledgements")
let url = Bundle.main.url(forResource: "Pods-AcknowExample-acknowledgements", withExtension: "plist")
let viewController = AcknowListViewController(plistFileURL: url)

如果您想包含不属于 .plist.resolved 文件的许可证,您可以创建新的 Acknow 实例,并将它们用于控制器的致谢数组。

let acknow = Acknow(title: "...", text: "...")
let viewController = AcknowListViewController(acknowledgements: [acknow])

自定义

控制器还可以显示头部和尾部。默认情况下,它们从生成的 plist 文件加载,但您也可以直接更改属性值。

viewController.headerText = "We love open source software."
viewController.footerText = "Powered by CocoaPods and SPM"

控制器标题是 “acknowledgements” 的本地化值。您可能希望将此本地化值用于呈现控制器的按钮。

button.setTitle(AcknowLocalization.localizedTitle(), for: .normal)

默认情况下,AcknowListViewController 使用 “grouped” 表视图样式。您可以选择不同的样式

let viewController = AcknowListViewController(plistFileURL: url, style: .plain)

如果您需要进一步自定义此库的外观或行为,请随时继承其类。

SwiftUI

AcknowList 现在提供 SwiftUI 接口,它支持所有主要平台。

使用 plist 文件的路径或 Acknow 实例数组实例化 AcknowListSwiftUIView,并从 NavigationView 呈现此视图。

平台

平台 UIKit SwiftUI
📱 iOS 9.0+ iOS 13.0+
📺 tvOS 9.0+ tvOS 13.0+
🥽 visionOS 1.0+ visionOS 1.0+
⌚️ 不支持 watchOS 7.0+
💻 不支持 macOS 10.15+

⚠️如果您使用 CocoaPods 或 Swift Package Manager 安装 AcknowList,则它将需要 iOS 13 和 tvOS 13。为了支持更早的版本,请手动导入此库,并忽略 SwiftUI 类。或者,使用 VTAcknowledgementsViewController 作为替代方案。

要求

AcknowList 使用 Swift 5 编写,需要 Xcode 12 及以上版本。

贡献者

AcknowList 由 Vincent Tourraine 创建,并由不断增长的 贡献者列表 改进。

许可证

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