测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
Released最后发布 | 2017年7月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由Vhyme Riku维护。
一个具有像素完美的推送动画和任意方向的弹出手势的简单导航控制器!
注意:提供对
UIScrollView
的实验性支持(以及所有基于UIScrollView
的其他视图,例如UITableView
和UIWebView
),这意味着您接触到的所有UIScrollView
都应该滚动到最左边/顶部/底部以触发右/下/上滑动手势。除了rootViewController
中的外,所有接触到的UIScrollView
都将设置为bounces = false
以达到此目的。
使用 Swift 3 编写。
运行 pod try AnyPullBack
,更改捆绑标识符和开发团队,构建项目并在手机上运行!
将 pod 'AnyPullBack'
添加到您的 Podfile
。
根据您的要求使用 AnyPullBackNavigationController
。
AnyPullBackNavigationController
类是公开的,这意味着您可以继承该类并创建自己的子类。但是,如果您的子类重写了 viewDidLoad
方法,请务必调用 super.viewDidLoad()
,否则将会禁用所有功能,像纯 UINavigationController
一样工作。
所有从 UINavigationController
继承的 API 都可用。
defaultPushAnimator
设置 pushViewController(_:animated:)
所使用的默认动画器。使用带有源矩形或源视图的 ScaleInAnimator
或使用您喜欢的方向的 SwipeInAnimator
进行初始化。
defaultPopAnimator
设置 popViewController:animated:
所使用的默认动画器。使用您喜欢的方向的 SwipeOutAnimator
进行初始化。
pullableWidthFromLeft
: CGFloat默认为 0
。设置右侧滑动可以弹出当前 ViewController
的区域宽度。要使整个屏幕都可以滑动以弹出,请将其设置为 0
。
canPullFromLeft
| canPullFromTop
| canPullFromBottom
主控滑动手势。默认值为所有都是 true
。
iNdEx pushViewController(_:fromView:)
使用临时的 ScaleInAnimator
推送一个 ViewController
,从特定的视图提供缩放动画。
注意:与
pushViewController(_:fromRect:)
相比,此方法提供了更平滑的过渡,源头视图淡出,而不是被突然出现的空白矩形覆盖。
iNdEx pushViewController(_:fromRect:)
使用临时的 ScaleInAnimator
推送一个 ViewController
,从特定的矩形提供缩放动画。
mom indexPath(_:inDirection:)
在特定方向推送一个 ViewController
。可用的方向有 .leftFromRight
,.rightFromLeft
,.upFromBottom
,.downFromTop
。
mom viewController(inDirection:)
在特定方向弹出 ViewController
。可用的方向有 .rightFromLeft
,.leftFromRight
,.downFromTop
,.upFromBottom
。
AnyPullBackCustomizable
扩展你的 UIViewController
使用 AnyPullBackCustomizable
并指定方法 UIViewController::apb_shouldPull(inDirection:) -> Bool
来自定义是否允许当前的视图控制器从特定方向被拖动。此方法在用户尝试从某一方向拖动时被调用。
注意:此方法可以在单个滑动手势过程中多次被调用,直到它返回
true
允许滑动。请小心处理此细节。
示例
class ExampleViewController: UIViewController, AnyPullBackCustomizable {
func apb_shouldPull(inDirection direction: SwipeOutDirection) -> Bool {
// To only enable pulling from left for this view controller
return direction == .rightFromLeft
// To disable pull-to-back completely for this view controller
return false
}
}