PanelKit 2.0.1

PanelKit 2.0.1

测试测试过
语言 SwiftSwift
许可证 MIT
发布最新发布2017年12月
SwiftSwift 版本4.0
SPM支持 SPM

Louis Dhauwe 维护。



PanelKit 2.0.1

PanelKit for iOS

Build Status Codecov
Swift PodVersion Carthage Compatible Platform: iOS Twitter

PanelKit for iOS
可以在 展示 中看到使用 PanelKit 的应用。

关于

PanelKit 是一个 UI 框架,它允许 iOS 上的面板。面板可以通过以下方式展示

  • 模态
  • 作为弹出视图
  • 浮动(拖动面板周围)
  • 固定(左侧或右侧)

此框架负责拖动面板、固定面板以及当显示/隐藏键盘时移动/调整面板大小等繁重工作。

实现

在使 API 简单以进行基本实现方面付出了很多努力,但如有必要,也非常可定制。由于 PanelKit 基于协议,使用它不需要子类化任何内容。PanelKit 包含两个基本原则:面板面板管理器

面板

面板是通过使用 PanelViewController 初始化器创建的,该初始化器期望一个 UIViewControllerPanelContentDelegatePanelManager

PanelContentDelegate

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 有一些高级的可选功能

安装

CocoaPods

要安装,请将以下行添加到您的 Podfile

pod 'PanelKit', '~> 2.0'

Carthage

要安装,请将以下行添加到您的 Cartfile

github "louisdh/panelkit" ~> 2.0

运行 carthage update 来构建框架,然后将构建的 PanelKit.framework 拖入您的 Xcode 项目中。

要求

  • iOS 10.0+
  • Xcode 9.0+

待办事项

长期

  • 自上而下的固定

许可证

该项目下可用的 MIT 许可证。有关更多信息,请参阅 LICENSE 文件。