SwipeTransitionAutoSwipeBack 0.5.0

SwipeTransitionAutoSwipeBack 0.5.0

Tatsuya Tanaka 维护。



logotype-a

Build Status Carthage compatible pods Platform Swift Version Objective-C compatible

SwipeTransition 允许使用滑动手势进行时尚的过渡效果,如“滑动返回”。

Demo

在网络上尝试演示(appetize.io):[https://appetize.io/app/pebm8kveqhfj3wn204adn0xu8r](https://appetize.io/app/pebm8kveqhfj3wn204adn0xu8r)

特性

  • 在任何位置都可以进行滑动返回。
  • 在任何位置都可以通过滑动来销毁。
  • 自动应用于所有视图控制器!
  • UIScrollViewUITableViewUICollectionView 等等的手势没有冲突。

要求

  • Xcode 10.2 (10.0+)
  • Swift 5 (4.2+)
  • iOS 8.0+

安装

Carthage

github "tattn/SwipeTransition"

CocoaPods

pod "SwipeTransition"
pod "SwipeTransitionAutoSwipeBack"      # if needed
pod "SwipeTransitionAutoSwipeToDismiss" # if needed

使用

使用方法最简单

只需在这些框架中设置链接的框架和库,即可工作。(如果您使用Carthage)

Linked Frameworks and Libraries

注意:这些框架使用了方法交换技术。

如果您想手动设置而不使用方法交换技术,请只使用SwipeTransition.framework

手动设置

注意:如果您使用`AutoSwipeBack.framework`,则这些无需设置。

只需使用SwipeBackNavigationController代替UINavigationController。当然,您也可以使用Interface Builder进行设置。

let viewController = UIViewController()
let navigationController = SwipeBackNavigationController(rootViewControlelr: viewController)

另一种方法是设置swipeBack

class CustomNavigationController: UINavigationController {
    override func viewDidLoad() {
        super.viewDidLoad()
        swipeBack = SwipeBackController(navigationController: self)
    }
}
注意:如果您使用`AutoSwipeToDismiss.framework`,则无需设置这些。

只需使用SwipeToDismissNavigationController代替UINavigationController。当然,您也可以使用Interface Builder进行设置。

let viewController = UIViewController()
let navigationController = SwipeToDismissNavigationController(rootViewControlelr: viewController)

另一种方法是设置swipeToDismiss

class CustomNavigationController: UINavigationController {
    override func viewDidLoad() {
        super.viewDidLoad()
        modalPresentationStyle = .fullScreen
        swipeToDismiss = SwipeToDismissController(viewController: self)
    }
}

启用/禁用手势

使用isEnabled属性。

self.navigationController?.swipeBack?.isEnabled = false
self.swipeToDismiss?.isEnabled = false

配置

您还可以更改行为,例如动画。

SwipeBackConfiguration.shared.parallaxFactor = 0.6

SwipeToDismissConfiguration.shared.dismissHeightRatio = 0.5

通过继承配置类,您可以使用计算属性进行设置。

class CustomSwipeBackConfiguration: SwipeBackConfiguration {
    override var transitionDuration: TimeInterval {
        get { return 1.5 }
        set { super.transitionDuration = newValue }
    }
}

SwipeBackConfiguration.shared = CustomSwipeBackConfiguration()

其他使用方法

参见此维基

贡献

  1. 将它分叉!
  2. 创建您的功能分支:git checkout -b my-new-feature
  3. 提交您的更改:git commit -am '添加一些功能'
  4. 推送到分支:git push origin my-new-feature
  5. 提交拉取请求 :D

支持此项目

捐赠以帮助我继续此项目的开发。

Donate

待办事项

  • 所有 .modalPresentationStyle 支持
  • 动画支持(淡入/自定义)
  • 一些过渡样式支持(例如从右到左滑动过渡)

许可

SwipeTransition 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE。