CatalystOutlineView 0.1.2

CatalystOutlineView 0.1.2

Vitaliy Podolskiy 维护。



CatalystOutlineView

UIKit的NSOutlineView(AppKit中流行控件的复制品)

该行为采用经典组件的最大功能实现,并略有扩展

概览

需求

  • iOS 13.0+ (macCatalyst)
  • Swift 5

安装

手动安装

只需将 Source 文件夹添加到您的项目。

CocoaPods

使用Podfile配合 CocoaPods

pod 'CatalystOutlineView', '~> 0.1'

使用方法

🎨Storyboard

只需将UITableView的类设置为CatalystOutlineView中的任何一个。

💻代码

private var outline = CatalystOutlineView(frame: .zero) {
    didSet {
        outlineView.outlineDataSource = self
        outlineView.outlineDelegate = self
    }
}

配置

数据源和代理

为您的主类连接控件

@IBOutlet private(set) weak var outlineView: CatalystOutlineView!

然后设置outlineDataSource和outlineDelegate属性

outlineView.outlineDataSource = self
outlineView.outlineDelegate = self

然后您应该实现

CatalystOutlineViewDataSource

func outlineView(_ outlineView: CatalystOutlineView, numberOfChildrenOfItem item: Any?) -> Int
func outlineView(_ outlineView: CatalystOutlineView, child index: Int, ofItem item: Any?) -> Any
func outlineView(_ outlineView: CatalystOutlineView, isItemExpandable item: Any) -> Bool

CatalystOutlineViewDelegate

func outlineView(_ outlineView: CatalystOutlineView?, cellForItem item: Any?) -> UITableViewCell?
func outlineView(_ outlineView: CatalystOutlineView?, shouldCollapseItem item: Any?) -> Bool
func outlineView(_ outlineView: CatalystOutlineView?, didExpandItem item: Any?)
func outlineView(_ outlineView: CatalystOutlineView?, didCollapseItem item: Any?)
func view(forHeader outlineView: CatalystOutlineView?) -> UIView?
func height(forHeader outlineView: CatalystOutlineView?) -> CGFloat
func height(forCell outlineView: CatalystOutlineView?, ofItem item: Any?) -> CGFloat

// if you want context menu for your outlineView
func contextMenuConfiguration(for item: Any?) -> UIContextMenuConfiguration?

你的单元格可能符合ExpandCollapseDisplaying协议

func expand()
func collapse()

你还可以从仓库检查'示例'项目!

许可

CatalystOutlineViewDelegate遵循MIT许可。请参阅LICENSE以获取详细信息。