版本 2.2 的 PullToDismiss

PullToDismiss 2.2

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布日期最新发布2019年4月
SPM支持 SPM

sgr-ksmt 维护。



  • Suguru Kishimoto

拉取中断组件

拉取中断组件提供与 Facebook 信息类似的,通过拖动滚动视图或导航栏来实现滑动模态视图控制器屏幕淡出功能,具有平滑且丰富的背景效果。

GitHub release Language Carthage Compatible CocoaPods CocoaPodsDL Awesome Reviewed by Hound


例子 模糊效果例子
gif gif

特点

  • 支持所有滚动视图。(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)

img1

pullToDismiss?.background = ShadowEffect(color: .red, alpha: 0.5) // color: red, alpha: 0.5

模糊背景效果

v1.0 的新功能。

gif

// 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 的高度百分比

img2

// 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文件。