gpt4 book ai didi

ios - 使用滑动手势快速更改 UISlider 值

转载 作者:搜寻专家 更新时间:2023-11-01 06:05:13 25 4
gpt4 key购买 nike

我有一个带有滑动手势的 UIView。

 let swipeUpGesture = UISwipeGestureRecognizer(target: self, action: #selector(NextStepCaptureVC.handleSwipeUp(gesture:)))
swipeUpGesture.direction = .up
view.addGestureRecognizer(swipeUpGesture)

func handleSwipeUp(gesture: UISwipeGestureRecognizer) {
print("Swipe Up")
heightSlider.setValue(20, animated: true)
}

当我尝试更改值时,它起作用了,但值从 0 跳到 20。我希望值在滑动时不断变化。我该怎么做?

最佳答案

从您的代码来看,您似乎正试图将屏幕上的“上下平移”转化为 UISlider 值的变化。

正如其他人已经提到的,首先是将您的 UISwipeGestureRecognizer 更改为 UIPanGestureRecognizer

let pan = UIPanGestureRecognizer(target: self, action: #selector(pan(gesture:))) 
view.addGestureRecognizer(pan)

然后在平移函数中,您需要根据用户平移的程度更新 slider 值。

func pan(gesture: UIPanGestureRecognizer) {
// The amount of movement up/down since last change in slider
let yTranslation = gesture.translation(in: gesture.view).y

// The slide distance needed to equal one value in the slider
let tolerance: CGFloat = 5

if abs(yTranslation) >= tolerance {
let newValue = heightSlider.value + Float(yTranslation / tolerance)
heightSlider.setValue(newValue, animated: true)

// Reset the overall translation within the view
gesture.setTranslation(.zero, in: gesture.view)
}
}

只需调整 tolerance 变量即可让用户滑动更多/更少以调整 slider 值。

关于ios - 使用滑动手势快速更改 UISlider 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39433013/

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