MaterialMotionTransitions 1.1.0

MaterialMotionTransitions 1.1.0

测试已测试
Lang语言 Obj-CObjective C
许可证 Apache 2
发布最后发布2017年2月

Jeff Verkoeyen 维护。



  • 来自
  • Material Motion 作者

为苹果设备提供的 Material Motion Transitions

支持语言

  • Swift 3
  • Objective-C

功能

这个库使得可以使用 Material Motion 运行时创建 UIViewController 过渡。

安装

使用方法

导入框架

@import MaterialMotionTransitions;

现在您将能够访问所有 API。

示例应用/单元测试

通过运行以下命令访问应用的本地副本以访问 Catalog 应用程序

git clone https://github.com/material-motion/material-motion-transitions-objc.git
cd material-motion-transitions-objc
pod install
open MaterialMotionTransitions.xcworkspace

指南

  1. 架构
  2. 如何创建过渡导演
  3. 如何为视图控制器过渡使用导演

架构

此库的核心方面包括以下内容

  • TransitionDirector 协议
  • TransitionController 对象

符合 TransitionDirector 的对象可以描述应发生在 UIViewController 过渡期间的计划。

TransitionController 允许您决定哪个 TransitionDirector 应该控制特定的过渡。

如何创建过渡导演

导演控制特定视图控制器的显示和消失。每次开始过渡时都会创建一个导演的实例,并在过渡完成后丢弃。

步骤 1:创建一个符合 TransitionDirector 的新类

确保存储提供的 MDMTransition 对象。

代码片段

在 Objective-C 中

@interface <# DirectorName #>TransitionDirector : NSObject <MDMTransitionDirector>
@end

@interface <# DirectorName #>TransitionDirector ()
@property(nonatomic, strong) MDMTransition *transition;
@end

@implementation <# DirectorName #>TransitionDirector

- (instancetype)initWithTransition:(MDMTransition *)transition {
  self = [super init];
  if (self) {
    _transition = transition;
  }
  return self;
}

- (void)setUp {
}

@end

在 Swift 中

class <# DirectorName #>TransitionDirector: NSObject, TransitionDirector {

  let transition: Transition
  required init(transition: Transition) {
    self.transition = transition
  }

  func setUp() {
  }
}

步骤 2:在 setUp 中注册运动

使用转换对象的运行时注册计划。

代码片段

在 Objective-C 中

- (void)setUp {
  [self.transition.runtime addPlan:<#(nonnull NSObject<MDMPlan> *)#> to:<#(nonnull id)#>];
}

在 Swift 中

func setUp() {
  transition.runtime.addPlan(<#T##plan: Plan##Plan#>, to: <#T##Any#>)
}

如何为视图控制器转换使用导演

每个视图控制器都关联一个 mdm_transitionController 实例。在 directorClass 属性上设置 TransitionDirector 类类型。当你展示视图控制器时,会创建你的 TransitionDirector 类的实例,并且会调用其 setUp 方法。

代码片段

在 Objective-C 中

<#(nonnull UIViewController *)#>.mdm_transitionController.directorClass = [<# TransitionDirector #>TransitionDirector class];
[self presentViewController:<#(nonnull UIViewController *)#> animated:<#(BOOL)#> completion:<#^(void)completion#>];

在 Swift 中

<# UIViewController instance #>.mdm_transitionController.directorClass = <# TransitionDirector #>TransitionDirector.self
present(<#T##viewControllerToPresent: UIViewController##UIViewController#>, animated: <#T##Bool#>)

贡献

我们欢迎贡献!

查看我们的 即将到来的里程碑

更多关于 我们的团队我们的社区贡献要点 的信息。

许可

Apache 2.0 许可下发布。有关详细信息,请参阅 LICENSE 文件。