P9ViewDragger 1.2.1

P9ViewDragger 1.2.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2019年11月

Tae Hyun Na 维护。



  • Tae Hyun Na

P9ViewDragger

开发者可以使用 P9ViewDragger轻松实现视图拖拽功能。

安装

您可以从我们的发布页面下载最新的框架文件。P9ViewDragger 也可通过 CocoaPods 实现。要安装它,只需将以下行添加到您的 Podfile 中。pod 'P9ViewDragger'

运行

对于拖动、旋转和缩放,您只需将一个视图设置为 P9ViewDragger。

P9ViewDragger.default().trackingView(someView, parameters: nil, ready: nil, trackingHandler: nil, completion: nil)

这样就可以进行拖动、旋转和缩放 sameView 了。

P9ViewDragger 默认处理视图的拖动、旋转和缩放。但是,例如,如果您只想允许视图进行拖动,可以通过传递带有锁定标志的参数来实现。

P9ViewDragger.default().trackingView(someView, parameters: [P9ViewDraggerLockRotateKey:true, P9ViewDraggerLockScaleKey:true], ready: nil, trackingHandler: nil, completion: nil)

以下是可以使用的保留参数。

参数键 值类型 描述
P9ViewDraggerLockTranslateKey 布尔值 禁用平移
P9ViewDraggerLockScaleKey 布尔值 禁用缩放
P9ViewDraggerLockRotateKey 布尔值 禁用旋转
P9ViewDraggerSnapshotImageKey UIImage 在拖动时提供诱饵图像
P9ViewDraggerDecoyViewKey UIView 在拖动时提供诱饵视图
P9ViewDraggerRemainDecoyViewOnStageKey 布尔值 在拖动后不删除诱饵视图
P9ViewDraggerStartWhenTouchDownKey 布尔值 触摸时开始跟踪

您可以通过传递处理块代码,将业务代码放置在每个事件点,例如拖动准备、拖动和拖动完成。以下是示例,在开始拖动时更改视图的透明度值,在拖动时仅允许沿y轴移动,在拖动完成后更改视图的透明度值。

P9ViewDragger.default().trackingView(someView, parameters: nil, ready: { [weak self] (trackingView:UIView?) in
    guard let `self` = self else {
        return
    }
    self.someView.alpha = 0.2
}, trackingHandler: { [weak self] (trackingView:UIView?) in
    guard let _ = self, let trackingView = trackingView else {
        return
    }
    var transform = trackingView.transform
    transform.tx = 0
    trackingView.transform = transform
}) { [weak self] (trackingView:UIView?) in
    guard let `self` = self else {
        return
    }
    self.someView.alpha = 1.0
}

当进行拖动动画时,P9ViewDragger使用给定的视图。如果您想在没有任何变化的给定视图中保持不变,并想在动画时使用另一个视图或图像,则请使用诱饵函数。P9ViewDragger在给定阶段视图中创建诱饵视图。因此,在使用诱饵函数之前,您需要确定阶段视图。如果您已设置默认阶段视图,则可以通过传递nil给阶段视图参数,然后P9ViewDragger将使用默认阶段视图。

P9ViewDragger.default().trackingDecoyView(someView, stageView: stageView, parameters: nil, ready: { [weak self] (trackingView:UIView?) in
    guard let `self` = self else {
        return
    }
    self.someView.alpha = 0.2
}, trackingHandler: nil) { [weak self] (trackingView:UIView?) in
    guard let `self` = self, let trackingView = trackingView else {
        return
    }
    self.someView.alpha = 1.0
    self.someView.transform = trackingView.transform
}

许可证

适用于情况的MIT许可证。 http://en.wikipedia.org/wiki/MIT_License