SolarTransition 0.1.1

SolarTransition 0.1.1

测试已测试
Lang语言 SwiftSwift
许可证 MIT
Released最后发布2017年5月
SwiftSwift版本3.1
SPM支持SPM

Matija Kruljac维护。




  • Matija Kruljac

SolarTransition是一个CocoaPod,可以实现从圆角矩形UIButton开始的圆形动画过渡,圆角矩形的边长是其宽度或高度的一半。

示例

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

要求

  • iOS 8.0+
  • Xcode 8
  • Swift 3.0

安装

SolarTransition可以通过CocoaPods安装。要安装它,只需将以下行添加到您的Podfile中

platform :ios, '8.0'
use_frameworks!

target 'MyApp' do
    pod "SolarTransition"
end

用法

下面的代码用于在从第一个ViewController(fromViewController)触摸圆角UIButton(toViewController)触发过渡时,使用SolarTransitionAnimator。需要用动画持续时间、过渡类型和originView初始化SolarTransitionAnimator。创建toViewController后,需要将toViewControlleroriginView设置为前面提到的圆角UIButton。最后,只需要调用SolarTransitionAnimatorpresent()方法,传入toViewControllernavigationController

let solarTransitionAnimator = SolarTransitionAnimator(
    withDuration: TimeInterval(0.3),
    forTransitionType: .presenting,
    originView: startSolarTransitionButton
)
let toViewController = ToViewController(
    nibName: "ToViewController",
    navigationService: navigationService
)
toViewController.originView = startSolarTransitionButton
solarTransitionAnimator.present(
    viewController: toViewController,
    inNavigationController: navigationController
)

第二个ViewController(toViewController)必须在成功实现SolarTransitionOriginProtocol之前。

public protocol SolarTransitionOriginProtocol {
    var originView: UIView? { get set }
}

此协议要求声明一个originView属性,在第一个ViewController(fromViewController)中设置。

在关闭第二个ViewController(toViewController)时,必须使用持续时间、过渡类型和originView初始化SolarTransitionAnimator。对于关闭ViewController,调用SolarTransitionAnimatordismiss方法。

class ToViewController: UIViewController, SolarTransitionOriginProtocol {

    // ...
    guard let originView = originView else { return }
    let solarTransitionAnimator = SolarTransitionAnimator(
          withDuration: TimeInterval(0.5),
          forTransitionType: .dismissing,
          originView: originView
     )
     solarTransitionAnimator.dismiss(
          viewController: self,
          inNavigationController: navigationController
     )
}

作者

Matija Kruljac,[email protected]

许可证

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