测试测试过 | ✓ |
语语言 | SwiftSwift |
许可证 | MIT |
发布最新发布 | 2017年12月 |
SwiftSwift 版本 | 4.0 |
SPM支持 SPM | ✗ |
由 Louis Dhauwe 维护。
可以在 展示 中看到使用 PanelKit 的应用。
PanelKit 是一个 UI 框架,它允许 iOS 上的面板。面板可以通过以下方式展示
此框架负责拖动面板、固定面板以及当显示/隐藏键盘时移动/调整面板大小等繁重工作。
在使 API 简单以进行基本实现方面付出了很多努力,但如有必要,也非常可定制。由于 PanelKit 基于协议,使用它不需要子类化任何内容。PanelKit 包含两个基本原则:面板
和 面板管理器
。
面板是通过使用 PanelViewController
初始化器创建的,该初始化器期望一个 UIViewController
、PanelContentDelegate
和 PanelManager
。
PanelContentDelegate
是一个协议,它定义了面板的外观。通常为每个面板在它的 UIViewController
上实现 PanelContentDelegate
协议。
示例
class MyPanelContentViewController: UIViewController, PanelContentDelegate {
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Panel title"
}
var preferredPanelContentSize: CGSize {
return CGSize(width: 320, height: 500)
}
}
在一个 UINavigationController
中显式(没有您的操作)展示了面板,但顶部栏可以像任何 UINavigationController
一样隐藏或样式化。
PanelManager
是一个协议,在最基本的形式下期望以下内容
// The view in which the panels may be dragged around
var panelContentWrapperView: UIView {
return contentWrapperView
}
// The content view, which will be moved/resized when panels pin
var panelContentView: UIView {
return contentView
}
// An array of PanelViewController objects
var panels: [PanelViewController] {
return []
}
通常在 UIViewController
上实现 PanelManager
协议。
PanelKit 有一些高级的可选功能
要安装,请将以下行添加到您的 Podfile
pod 'PanelKit', '~> 2.0'
要安装,请将以下行添加到您的 Cartfile
github "louisdh/panelkit" ~> 2.0
运行 carthage update
来构建框架,然后将构建的 PanelKit.framework
拖入您的 Xcode 项目中。
该项目下可用的 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。