/tree

Primary LanguageSwiftMIT LicenseMIT

Tree

badge-languages Swift Package Manager compatible

How to use

class FolderListViewController: UIViewController {
    private let folderView = FolderListView<FolderListViewController>()
    // ...
}

struct Element: FolderElementConstructable {
    let id: Int
    let element: Int
    let parentIdentifier: Int
    let rank: Int
    
    static let invisableRootIdentifier = -1
}

extension FolderListViewController: FolderListViewDelegate {
    var elements: [Element] {
        [
            .init(id: 0, element: 0, parentIdentifier: -1, rank: 0),
            .init(id: 1, element: 1, parentIdentifier: 0, rank: 0),
            .init(id: 11, element: 11, parentIdentifier: 1, rank: 0),
            // ...
		]
    }
    
    func folderListView(didSelected element: FolderElement<Element>, of cell: Cell) {
        switch element {
        case .normal:
            // ...
        case .folder:
            // ...
        }
    }
    
    var itemHeight: CGFloat { 60 }
}

class Cell: UIView, FolderListCellViewType {
	// ....
}

Requirements

Xcode >= 12.0 or Swift >= 5.3.

Quick Start

In your Package.swift:

package.dependencies.append(
    .package(url: "https://github.com/royit/tree.git", from: "0.1.0")
)

License

Moya is released under an MIT license. See License.md for more information.