AcknowList 3.2.0

AcknowList 3.2.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布时间最后发布时间Jun 2024
SPM支持 SPM

Maintained by Vincent Tourraine.



  • Vincent Tourraine

AcknowList

AcknowList 是一个显示许可列表的识别屏幕,例如来自 CocoaPods 和 Swift Package Manager 依赖项。

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

也提供 Objective-C 语言版本,通过 VTAcknowledgementsViewController

AcknowList screenshots

特性

  • 从 CocoaPods 生成的文件(Pods-###-acknowledgements.plist)加载识别项
  • 从 Swift Package Manager 文件(Package.resolved)加载识别项
  • 删除许可证中的多余换行符以获得更好的文本包装
  • 可选列表标题和页脚
  • 标题、页脚和识别文本中的可点击链接
  • 支持 Storyboard
  • 支持深色模式
  • 支持动态类型
  • 本地化到 13 种语言
  • 支持 UIKit 和 SwiftUI 接口

安装

CocoaPods

  1. pod 'AcknowList' 添加到您的 Podfile
  2. 运行 pod install
  3. 将 CocoaPods 生成的 Pods-#target#-acknowledgements.plist 文件添加到您的主目标中:从 Pods/Target Support Files/Pods-#target#/ 文件夹中将文件拖放到您的 Xcode 项目中(不要复制文件,不要勾选“如果需要则复制项”)。

Swift 包管理器

AcknowList 可以通过 Swift 包管理器 安装(需要 Xcode 12 以支持本地化资源)。

  1. 单击 文件添加包...
  2. 输入 https://github.com/vtourraine/AcknowList
  3. 选择您要使用的版本。
  4. 将 Xcode 生成的 Package.resolved 文件添加到您的主目标中。从文件夹中将文件拖放到您 Xcode 项目中(不要复制文件,不要勾选“如果需要则复制项”)。
    • 对于单一 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 文件中的致谢以及从 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"

控制器标题是“致谢”的本地化值。您可能希望使用这个本地化值来为控制器按钮。

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

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

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+
⌚️ 不支持 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文件。