SwipeTransition 允许使用滑动手势进行时尚的过渡效果,如“滑动返回”。
在网络上尝试演示(appetize.io):[https://appetize.io/app/pebm8kveqhfj3wn204adn0xu8r](https://appetize.io/app/pebm8kveqhfj3wn204adn0xu8r)
特性
- 在任何位置都可以进行滑动返回。
- 在任何位置都可以通过滑动来销毁。
- 自动应用于所有视图控制器!
- 与
UIScrollView
、UITableView
、UICollectionView
等等的手势没有冲突。
要求
- 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)
注意:这些框架使用了方法交换技术。
如果您想手动设置而不使用方法交换技术,请只使用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()
其他使用方法
参见此维基
贡献
- 将它分叉!
- 创建您的功能分支:
git checkout -b my-new-feature
- 提交您的更改:
git commit -am '添加一些功能'
- 推送到分支:
git push origin my-new-feature
- 提交拉取请求 :D
支持此项目
捐赠以帮助我继续此项目的开发。
待办事项
- 所有
.modalPresentationStyle
支持 - 动画支持(淡入/自定义)
- 一些过渡样式支持(例如从右到左滑动过渡)
许可
SwipeTransition 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE。