Ios 变化速度快
是否可以减慢平移手势,使其以较低的速度移动 下面是我用来移动3d对象的代码Ios 变化速度快,ios,swift,scenekit,Ios,Swift,Scenekit,是否可以减慢平移手势,使其以较低的速度移动 下面是我用来移动3d对象的代码 @objc func handlePan(gestureRecognize: UIPanGestureRecognizer) { let numberOfTouches = gestureRecognize.numberOfTouches let translation = gestureRecognize.translation(in: gestureRecognize.view!)
@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测试识别器的属性的函数?