gpt4 book ai didi

ios - 如何在 iOS Swift 中处理多个 UISlider 值?

转载 作者:行者123 更新时间:2023-11-28 13:47:07 26 4
gpt4 key购买 nike

我有三个 UISliderslider 1:缩放,slider 2:调整左/右和 slider 3: 调整顶部/底部位置。

调整slider 1(scale)时,调整slider 2(左/右)时scnnode不调整相同的scale值,它减少到原始比例值。

这是我的三个 slider 值的代码:

 @IBAction func didChangedSlider(_ sender: Any) {

switch slider.value {

case 0 ... 25 :
earsNode1.scale = SCNVector3(0.0011, 0.0011, 0.0011)
earsNode.scale = SCNVector3(0.0010, 0.0010, 0.0010)

earsNode.position = SCNVector3(-0.08, -0.035, -0.12)
earsNode1.position = SCNVector3(0.077, -0.035, -0.12)

isSizeIncreased = false

case 25 ... 50 :
earsNode1.scale = SCNVector3(0.0014, 0.0014, 0.0014)
earsNode.scale = SCNVector3(0.0014, 0.0014, 0.0014)

earsNode.position = SCNVector3(-0.08, -0.040, -0.12)
earsNode1.position = SCNVector3(0.077, -0.040, -0.12)

isSizeIncreased = true

case 50 ... 75 :

earsNode1.scale = SCNVector3(0.002, 0.002, 0.002)
earsNode.scale = SCNVector3(0.002, 0.002, 0.002)

earsNode.position = SCNVector3(-0.08, -0.050, -0.12)
earsNode1.position = SCNVector3(0.077, -0.050, -0.12)

isSizeIncreased = true

case 75 ... 100 :
earsNode1.scale = SCNVector3(0.003, 0.003, 0.003)
earsNode.scale = SCNVector3(0.003, 0.003, 0.003)

earsNode.position = SCNVector3(-0.08, -0.064, -0.12)
earsNode1.position = SCNVector3(0.077, -0.064, -0.12)

isSizeIncreased = true

default:
print("slider value \(slider.value)")
}
}

// slider2 - left/right

@IBAction func didChangedSliderLeftOrRight(_ sender: Any) {

switch slider2.value {
case 0 ... 25:

earsNode.position = SCNVector3(-0.083, -0.035, -0.099)
earsNode1.position = SCNVector3(0.083, -0.035, -0.099)

case 25 ... 50:

earsNode.position = SCNVector3(-0.081, -0.035, -0.099)
earsNode1.position = SCNVector3(0.081, -0.035, -0.099)

case 50 ... 75:

earsNode.position = SCNVector3(-0.077, -0.035, -0.099)
earsNode1.position = SCNVector3(0.077, -0.035, -0.099)

case 75 ... 100:

earsNode.position = SCNVector3(-0.073, -0.035, -0.099)
earsNode1.position = SCNVector3(0.073, -0.035, -0.099)

default:
print("slider2 value \(slider2.value)")

}
}

// slider3 - top/bottom

@IBAction func didChangedSliderTopOrBottom(_ sender: Any) {

switch slider3.value {
case 0 ... 25:


earsNode.position = SCNVector3(-0.079, -0.027, -0.099)
earsNode1.position = SCNVector3(0.079, -0.027, -0.099)

case 25 ... 50:


earsNode.position = SCNVector3(-0.079, -0.031, -0.099)
earsNode1.position = SCNVector3(0.079, -0.031, -0.099)

if isSizeIncreased {

earsNode.position = SCNVector3(-0.08, -0.040, -0.12)
earsNode1.position = SCNVector3(0.077, -0.040, -0.12)
}

case 50 ... 75:


earsNode.position = SCNVector3(-0.079, -0.035, -0.099)
earsNode1.position = SCNVector3(0.079, -0.035, -0.099)

if isSizeIncreased {

earsNode.position = SCNVector3(-0.08, -0.054, -0.12)
earsNode1.position = SCNVector3(0.077, -0.054, -0.12)
}

case 75 ... 100:


earsNode.position = SCNVector3(-0.079, -0.039, -0.099)
earsNode1.position = SCNVector3(0.079, -0.039, -0.099)

if isSizeIncreased {

earsNode.position = SCNVector3(-0.08, -0.060, -0.12)
earsNode1.position = SCNVector3(0.077, -0.060, -0.12)
}

default:
print("slider3 value \(slider3.value)")

}
}
}

这是我的截图

enter image description here

我的问题是当用户更改任何 slider 值时,它不会从 slider 调整的最后位置发生变化。应从已调整的位置调整 slider 值。

最佳答案

在 Xcode 中复制/粘贴并保存此文件 https://gist.github.com/jeremyconkin/a3909b2d3276d1b6fbff02cefecd561a

在 slider 中使用矢量数学时(我只重写第一个):

@IBAction func didChangedSlider(_ sender: Any) {

switch slider.value {

case 0 ... 25 :
earsNode1.scale += SCNVector3(0.0011, 0.0011, 0.0011)
earsNode.scale += SCNVector3(0.0010, 0.0010, 0.0010)

earsNode.position += SCNVector3(-0.08, -0.035, -0.12)
earsNode1.position += SCNVector3(0.077, -0.035, -0.12)

isSizeIncreased = false

case 25 ... 50 :
earsNode1.scale += SCNVector3(0.0014, 0.0014, 0.0014)
earsNode.scale += SCNVector3(0.0014, 0.0014, 0.0014)

earsNode.position += SCNVector3(-0.08, -0.040, -0.12)
earsNode1.position += SCNVector3(0.077, -0.040, -0.12)

isSizeIncreased = true

case 50 ... 75 :

earsNode1.scale += SCNVector3(0.002, 0.002, 0.002)
earsNode.scale += SCNVector3(0.002, 0.002, 0.002)

earsNode.position += SCNVector3(-0.08, -0.050, -0.12)
earsNode1.position += SCNVector3(0.077, -0.050, -0.12)

isSizeIncreased = true

case 75 ... 100 :
earsNode1.scale += SCNVector3(0.003, 0.003, 0.003)
earsNode.scale += SCNVector3(0.003, 0.003, 0.003)

earsNode.position += SCNVector3(-0.08, -0.064, -0.12)
earsNode1.position += SCNVector3(0.077, -0.064, -0.12)

isSizeIncreased = true

default:
print("slider value \(slider.value)")
}

关于ios - 如何在 iOS Swift 中处理多个 UISlider 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55273936/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com