拉取中断组件
拉取中断组件提供与 Facebook 信息类似的,通过拖动滚动视图或导航栏来实现滑动模态视图控制器屏幕淡出功能,具有平滑且丰富的背景效果。
例子 | 模糊效果例子 |
---|---|
![]() |
![]() |
特点
- 支持所有滚动视图。(UIScrollView, UITableView, UICollectionView, UIWebView, WKWebView)
- 可定制的。(可自定义淡出背景颜色、透明度、淡出高度百分比)
- 可在 UIViewController, UINavigationController 中使用。
- 自动将拖动手势添加到导航栏。
- 支持模糊效果。
- Objective-C 支持。 (自 v2.1 开始)
迁移指南
如果从 1.x 升级到 2.0,如果需要,请参阅 迁移指南。
使用方法
入门指南
(1) 设置 PullToDismiss
import PullToDismiss
class SampleViewController: UIViewController {
@IBOutlet private weak var tableView: UITableView!
private var pullToDismiss: PullToDismiss?
override func viewDidLoad() {
super.viewDidLoad()
pullToDismiss = PullToDismiss(scrollView: tableView)
}
}
(2) 创建视图控制器并设置 modalPresentationStyle
。然后呈现视图控制器
let vc = SampleViewController()
let nav = UINavigationController(rootViewController: vc)
nav.modalPresentationStyle = .overCurrentContext
self.present(nav, animated: true, completion: nil)
(UIScrollView|UITableView|UICollectionView)Delegate
使用 您可以通过设置 pullToDismiss.delegate
来使用所有滚动视图的代理。
import PullToDismiss
class SampleViewController: UIViewController {
@IBOutlet private weak var tableView: UITableView!
private var pullToDismiss: PullToDismiss?
override func viewDidLoad() {
super.viewDidLoad()
pullToDismiss = PullToDismiss(scrollView: tableView)
pullToDismiss?.delegate = self
}
}
extension SampleViewController: UITableViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
// ...
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// ...
}
}
自定义
您可以自定义背景效果和可 dismiss 的高度百分比。
阴影背景效果
- 背景(默认:
ShadowEffect.default
,颜色:黑色,透明度:0.8)
pullToDismiss?.background = ShadowEffect(color: .red, alpha: 0.5) // color: red, alpha: 0.5
模糊背景效果
v1.0 的新功能。
// preset blur (.extraLight, .light, .dark)
pullToDismiss?.background = BlurEffect.extraLight
// set custom Blur
pullToDismiss?.background = BlurEffect(color: .red, alpha: 0.5, blurRadius: 40.0, saturationDeltaFactor: 1.8)
可 dismiss 的高度百分比
// to pull half size of view controller, dismiss view controller.
pullToDismiss?.dismissableHeightPercentage = 0.5
需求
- iOS 8.0+(模糊效果:iOS 9.0+)
- Xcode 8.1+
- Swift 3.0+
安装
Carthage
- 将以下内容添加到您的Cartfile
# Swift 5.0 or later
github "sgr-ksmt/PullToDismiss" ~> 2.2
# Swift 3
github "sgr-ksmt/PullToDismiss", 2.1
- 执行命令
carthage update
- 按照说明添加框架。
详细信息:Carthage Readme
CocoaPods
PullToDismiss可以通过CocoaPods使用。要安装它,只需将以下一行添加到您的Podfile中
# Swift 5.0 or later
pod 'PullToDismiss', '~> 2.2'
# Swift 3
pod 'PullToDismiss', '2.1'
然后运行pod install
手动安装
下载所有*.swift
文件并放在您的项目中。
变更日志
变更日志请见此处。
通讯
- 如果您发现错误,请打开一个问题。
- 如果您有功能请求,请打开一个问题。
- 如果您想贡献力量,请提交一个Pull请求。
💪
许可证
PullToDismiss 在MIT许可证下。有关更多信息,请参阅LICENSE文件。