SplittableViewKit
在 UITableView 中,当设备旋转时,位于 IndexPath(row: 0, section: 0)
的单元格将自动移到左侧视图。
用法
请使用初始化器或 Interface Builder 初始化 SplittableTableView
。 SplittableTableView.rightView
是 UITableView。您不能直接将委托或数据源设置为 SplittableTableView.rightView
。您必须使用 SplittableTableView.delgate
或 SplittableTableView.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.left
和 LayoutType.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 文件。