AcknowList
AcknowList 是一个显示许可列表的识别屏幕,例如来自 CocoaPods 和 Swift Package Manager 依赖项。
也提供 Objective-C 语言版本,通过 VTAcknowledgementsViewController 。
特性
- 从 CocoaPods 生成的文件(
Pods-###-acknowledgements.plist
)加载识别项 - 从 Swift Package Manager 文件(
Package.resolved
)加载识别项 - 删除许可证中的多余换行符以获得更好的文本包装
- 可选列表标题和页脚
- 标题、页脚和识别文本中的可点击链接
- 支持 Storyboard
- 支持深色模式
- 支持动态类型
- 本地化到 13 种语言
- 支持 UIKit 和 SwiftUI 接口
安装
CocoaPods
- 将
pod 'AcknowList'
添加到您的Podfile
。 - 运行
pod install
。 - 将 CocoaPods 生成的
Pods-#target#-acknowledgements.plist
文件添加到您的主目标中:从Pods/Target Support Files/Pods-#target#/
文件夹中将文件拖放到您的 Xcode 项目中(不要复制文件,不要勾选“如果需要则复制项”)。
Swift 包管理器
AcknowList 可以通过 Swift 包管理器 安装(需要 Xcode 12 以支持本地化资源)。
- 单击
文件
→添加包...
。 - 输入
https://github.com/vtourraine/AcknowList
。 - 选择您要使用的版本。
- 将 Xcode 生成的
Package.resolved
文件添加到您的主目标中。从文件夹中将文件拖放到您 Xcode 项目中(不要复制文件,不要勾选“如果需要则复制项”)。- 对于单一 Xcode 项目,该文件位于
[appName].xcodeproj/project.xcworkspace/xcshareddata/swiftpm/
。 - 对于 Xcode 工作区(例如使用 CocoaPods),该文件位于
[appName].xcworkspace/xcshareddata/swiftpm/
。
- 对于单一 Xcode 项目,该文件位于
初始化
通常将 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+ |
需求
AcknowList使用Swift 5编写,需要Xcode 12及以上版本。
致谢
AcknowList由Vincent Tourraine创建,并得到越来越多的贡献者改进。
许可
AcknowList遵循MIT许可。更详细的信息请参阅LICENSE.txt
文件。