Ios 变化速度快

Ios 变化速度快,ios,swift,scenekit,Ios,Swift,Scenekit,是否可以减慢平移手势,使其以较低的速度移动 下面是我用来移动3d对象的代码 @objc func handlePan(gestureRecognize: UIPanGestureRecognizer) { let numberOfTouches = gestureRecognize.numberOfTouches let translation = gestureRecognize.translation(in: gestureRecognize.view!)

是否可以减慢平移手势,使其以较低的速度移动

下面是我用来移动3d对象的代码

    @objc func handlePan(gestureRecognize: UIPanGestureRecognizer) {

    let numberOfTouches = gestureRecognize.numberOfTouches
    let translation = gestureRecognize.translation(in: gestureRecognize.view!)
    var widthRatio = Float(translation.x) / Float(gestureRecognize.view!.frame.size.width) - lastWidthRatio

    if (numberOfTouches == fingersNeededToPan) {
        //  WIDTH constraints
        if(widthRatio >= maxWidthRatioRight) {
            widthRatio = maxWidthRatioRight
        }
        if(widthRatio <= maxWidthRatioLeft) {
            widthRatio = maxWidthRatioLeft
        }

        self.artRoomScene.boxnode.eulerAngles.y = Float(2 * Double.pi) * widthRatio
        //for final check on fingers number
        lastFingersNumber = fingersNeededToPan
    }

    lastFingersNumber = (numberOfTouches>0 ? numberOfTouches : lastFingersNumber)

    if (gestureRecognize.state == .ended && lastFingersNumber==fingersNeededToPan) {
        lastWidthRatio = widthRatio
    }
}
@objc func handlePan(手势识别器:UIPangestureRecognitizer){
让NumberOfTouchs=手势识别。NumberOfTouchs
让translation=gestureRecognition.translation(在:gestureRecognition.view!中)
var widthRatio=Float(translation.x)/Float(gestureRecognite.view!.frame.size.width)-lastWidthRatio
如果(NumberOfTouchs==FingersNeedTopan){
//宽度限制
如果(widthRatio>=maxWidthRatioRight){
widthRatio=maxWidthRatioRight
}
if(宽度比0?接触次数:lastFingersNumber)
if(gestureRecognite.state==.ended&&lastFingersNumber==FingersNeedTopan){
lastWidthRatio=宽度比
}
}

“sender.VelocityView(self.view)以每秒像素为单位提供速度。为了获得准确的速度,需要将速度除以60,将其更改为每分钟像素,如下所示:

sender.velocityView(self.view).x/60-用于水平

sender.velocityInView(self.view).y/60-用于垂直

因此,只需将位置与初始值相加即可更新位置,如下所示:

变量初始位置:CGPoint?->全局

initialLocation.x=(initialLocation±0)

(initialLocation.x)!=(initialLocation.x)!+(sender.velocity(in:colorSlider!).x/60)-用于水平

(initialLocation.y)!=(initialLocation.y)!+(sender.velocity(in:colorSlider!).y/60)-用于垂直


谢谢。”

您是否尝试过将所需的值作为
ui测试识别器的属性的函数?