USController,旨在以比UISplitViewController简单得多且可定制的程度同时显示两个控制器。
示例
需求
• iOS 9.0+
• Xcode 11.0+
安装
CocoaPods
USController可通过CocoaPods使用。要安装它,只需将以下行添加到您的Podfile中
pod 'USController'
Carthage
您可以使用Carthage向您的Cartfile添加USController以进行安装。
github "ytur/USController"
如果您使用Carthage构建依赖项,请确保您已将USController.framework添加到目标中“链接的框架和库”部分,并将其包含在您的Carthage框架复制构建阶段中。
Swift 包管理器
您可以通过在您的 Package.swift
文件中添加正确的描述,使用 Swift 包管理器 安装 USController
// swift-tools-version:5.2
import PackageDescription
let package = Package(
name: "YOUR_PROJECT_NAME",
dependencies: [
.package(url: "https://github.com/ytur/USController.git", from: "1.1.0"),
]
)
准备好了之后,请运行 swift build
手动
要在项目中手动使用此库,您可以
- 对于项目,只需将源文件夹拖到项目树中
- 对于工作区,包括整个USController.xcodeproj
使用方法
将USController导入到您想要将其用作子控制器的主控制器。
import USController
可以通过构建器初始化方法轻松配置USController。您必须通过构建类中的"parentController"参数指定父控制器。可以用构建方法设置主控制器和详细控制器。
let masterController = UIViewController()
let detailController = UIViewController()
let dataSource = USCDataSource.Builder(parentController: self)
.setMasterController(masterController, embedInNavController: true)
.setDetailController(detailController, embedInNavController: true)
.setAppearance(.visibleInit)
.setDirection(.trailing)
.showBlockerOnMaster(color: .black, opacity: 0.1, allowInteractions: true)
.swipeable()
.invokeAppearanceMethods()
.portraitAnimationProperties(duration: 0.35, forwardDampingRatio: 0.5)
.landscapeAnimationProperties(duration: 0.35, forwardDampingRatio: 0.5)
.portraitCustomWidth(100.0)
.landscapeCustomWidth(100.0)
.visibilityChangesListener(willStartBlock: { (targetVisibility) in
print("targetVisibility:\(targetVisibility)")
})
.build()
此方法返回详细控制器的当前可见状态。
dataSource.getCurrentVisibility()
此方法在"可见"和"不可见"之间切换详细控制器的当前可见状态。
dataSource.detailToggle()
将USController及其子视图永久地从父控制器和视图中删除。
dataSource.disposeTheController()
强制详细信息控制器隐藏,如果它已显示,即使进行切换操作也保持隐藏。
dataSource.forceToHide = true
作者
ytur, [邮箱地址保护]
许可协议
USController可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。