_PULLUPCONTROLLER 0.8.0

PullUpController 0.8.0

Mario Iannotta 维护。



  • Mario Iannotta

PullUpController

创建一个类似于 iOS 地图的带多个粘性点的自定义下拉控制器

Platform Swift 5 Cocoapods Compatible Maintainability

特性

  • 多个 粘性点
  • 支持横幅
  • 支持滚动视图

设置

  1. pod 'PullUpController' 添加到您的 Podfile 或复制 PullUpController.swift 到您的项目中
  2. 确保您将作为下拉控制器的视图控制器继承自 PullUpController
  3. 使用 addPullUpController(<#T##PullUpController#>, initialStickyPointOffset: <#T##CGFloat#>, animated: <#T##Bool#>) 添加控制器为主控制器的一个子控制器

自定义

通过重写以下属性,您可以自定义控制器行为

pullUpControllerPreferredSize: CGSize

下拉控制器视图的理想尺寸,以屏幕单位为单位。默认值是宽度: UIScreen.main.bounds.width, height: 400

pullUpControllerPreferredLandscapeFrame: CGRect

设备处于横幅模式时,下拉控制器视图的理想尺寸,以屏幕单位为单位。默认值是 (x: 10, y: 10, width: 300, height: UIScreen.main.bounds.height - 20)

pullUpControllerMiddleStickyPoints: [CGFloat]

一组y值列表,以屏幕单位表示,使用下拉控制器坐标系。在手势结束时,下拉控制器将滚动到列表中的最近位置。

要获取所有粘性点的完整列表,可以使用pullUpControllerAllStickyPoints

pullUpControllerBounceOffset: CGFloat

一个CGFloat值,用于确定下拉控制器视图可以超出其大小多少。默认值为0,这意味着视图不能超出其大小。

可以通过使用方法pullUpControllerMoveToVisiblePoint(_ visiblePoint: CGFloat, animated: Bool, completion: (() -> Void)?)来程序化地更改视图控制器视图的位置。

此方法将移动下拉控制器视图,以便显示提供的可视点。

您可以使用pullUpControllerAllStickyPoints中的一个条目来提供有效的可视点。

  • visiblePoint:将在下拉控制器坐标系中显示的y值,以屏幕单位表示。
  • animated:一个true值将以动画方式移动视图。
  • completion:动画完成后执行的闭包。此块没有返回值且不接受任何参数。您可以为此参数指定nil。

通过重写以下方法,可以自定义控制器视图执行的所有动画。 pullUpControllerAnimate(action: Action, withDuration duration: TimeInterval, animations: @escaping () -> Void, completion: ((Bool) -> Void)?)

您可以考虑重写此方法并使用方法UIView.animate(withDuration:, delay:, usingSpringWithDamping:, initialSpringVelocity:, options:, animations:, completion:)来自定义动画。

  • parameter:即将执行的操作(.add、.remove或.move)
  • duration:动画的总持续时间,以秒为单位。如果您指定了负值或0,则没有动画地更改这些更改。-animations:包含要提交到视图的更改的块对象。completion:在动画序列结束时执行的块对象。

可以通过重写以下方法来观察PullUpController的视图状态:pullUpControllerWillMove(to point: CGFloat)

在下拉控制器视图移动到粘性点之前,将调用此方法。

pullUpControllerDidMove(to point: CGFloat)

在下拉控制器视图移动到点后,将调用此方法。

pullUpControllerDidDrag(to point: CGFloat)

下拉控制器视图被拖动到点后,将调用此方法。

PullUpController易于拖动,即使您的PullUpController视图包含一个UIScrollView,也只需使用以下方法将其附加到控制器本身:<#T##UIScrollView#>.attach(to: <#T##PullUpController#>)

将滚动视图附加到提供的下拉控制器,以移动它并与滚动视图内容一起移动。

  • pullUpController:要将它与当前滚动视图内容一起移动的下拉控制器。

示例

在本存储库中,您还可以找到示例。

信息

如果喜欢这个git,可以在以下地方或Twitter上关注我 :) @MarioIannotta

意大利向您致敬!