USController 1.1.0

USController 1.1.0

Yasin TURKOGLU维护。



  • 作者:
  • ytur

USController
更可定制的 iOS 设备家族通用分隔控制器

Platform License Version Carthage compatible SwiftPM compatible Reviewed by Hound

USController,旨在以比UISplitViewController简单得多且可定制的程度同时显示两个控制器。

示例

从仓库下载示例 party-parrot 项目并进行探索。

iPhone-split-example iPad-split-example iPhone-overlap-example iPad-overlap-example

需求

• 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

手动

要在项目中手动使用此库,您可以

  1. 对于项目,只需将源文件夹拖到项目树中
  2. 对于工作区,包括整个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文件。