SplittableViewKit 0.1.1

SplittableViewKit 0.1.1

Taiki Suzuki 维护。



SplittableViewKit

Language Carthage compatible Version License Platform

在 UITableView 中,当设备旋转时,位于 IndexPath(row: 0, section: 0) 的单元格将自动移到左侧视图。

用法

请使用初始化器或 Interface Builder 初始化 SplittableTableViewSplittableTableView.rightView 是 UITableView。您不能直接将委托或数据源设置为 SplittableTableView.rightView。您必须使用 SplittableTableView.delgateSplittableTableView.dataSource

let splittableTableView: SplittableTableView

splittableTableView.delegate = self
splittableTableView.dataSource = self
splittableTableView.rightView.register(UINib(nibName: "ThumbnailViewCell", bundle: nil),
                                       forCellReuseIdentifier: "ThumbnailViewCell")

SplittableViewKit 几乎与 UITableViewDataSource 相同,因为 SplittableTableViewDataSource 采用了 UITableViewDataSource,而 SplittableTableViewDelegate 采用了 UITableViewDelegate。只有一个区别是 func splittableContainerViewFor(topView: UIView, layoutType: LayoutType) -> UIView。您应该返回一个布局了顶层视图的 UIView。布局模式是 LayoutType.leftLayoutType.fixedTop

extension ViewController: SplittableTableViewDataSource {
    func splittableContainerViewFor(topView: UIView, layoutType: LayoutType) -> UIView {
        let view = UIView(frame: .zero)
        topView.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(topView)
        if layoutType == .left {
            NSLayoutConstraint.activate([
                view.leadingAnchor.constraint(equalTo: topView.leadingAnchor, constant: 0),
                view.trailingAnchor.constraint(equalTo: topView.trailingAnchor, constant: 0),
                view.centerYAnchor.constraint(equalTo: topView.centerYAnchor, constant: 0)
            ])
        } else {
            NSLayoutConstraint.activate([
                view.safeAreaLayoutGuide.topAnchor.constraint(equalTo: topView.topAnchor, constant: 0),
                view.leftAnchor.constraint(equalTo: topView.leftAnchor, constant: 0),
                view.rightAnchor.constraint(equalTo: topView.rightAnchor, constant: 0),
                view.bottomAnchor.constraint(equalTo: topView.bottomAnchor, constant: 0)
            ])
        }
        return view
    }
}

您可以使用 SplittableTableView.isFixedTop 切换是否启用固定顶部的功能。

splittableTableView.isFixedTop = true
左侧 固定顶部

您可以使用 SplittableTableView.ratio 更改左侧视图和右侧视图的比例。

splittableTableView.ratio = .init(left: 1, right: 2)
左侧:1,右侧:1 左侧:2,右侧:1

示例

要运行示例项目,请克隆仓库,然后首先从 SplittableViewKitExample 目录运行 pod install

需求

  • iOS 9 或更高版本
  • Swift 4 或更高版本

安装

SplittableViewKit 可通过 CocoaPods 获取。要安装它,只需在您的 Podfile 中添加以下行

pod 'SplittableViewKit'

作者

marty-suzuki, [邮箱地址保护]

许可证

SplittableViewKit 在MIT许可证下提供。有关更多信息,请参阅 LICENSE 文件。