如何使UISlider的可能值集成为开放间隔?

  • 本文关键字:集成 UISlider 何使 swift xcode
  • 更新时间 :
  • 英文 :


我使用一个UISlider来允许用户在四个选项中进行选择。我问用户一个"你有多喜欢这个东西?"的问题,他们通过移动滑块来回应,然后在幕后,我将滑块的值映射到一个数组的四个元素之一。我希望滑块的第一个四分之一对应于数组的第一个元素,滑块的第二个四分之一对应于数组的第二个元素,以此类推。

默认情况下,滑动条的范围是[0,1],所以我想要做的一种自然的方法是:

let index = Int(rangedSlider.value * Float(currentAnswers.count) )

假设rangedSlider是连接到有问题的UISlider的出口的名称,currentAnswers是我要映射到的答案数组。这样做的问题是,如果用户将滑块一直向右移动,则会将滑块的值设置为1,根据上面的公式(假设有四个答案)将其映射到索引4。我总是可以添加额外的代码行来单独处理这种情况,

if rangedSlider.value == 1 { index = currentAnswers.count - 1 }

但我更喜欢一行的解决方案。

我也可以在故事板中设置滑动条的最大值为0.99,并坚持我写的第一行代码,但我想知道:是否有一种内置的方法来使滑动条值的范围开放间隔?有没有更好的方法来得到我想要的行为?

这比:

let index = Int(rangedSlider.value * Float(currentAnswers.count - 1))

还是我误解了你的问题?这样,你的索引将作为0到3之间的数字返回,其中0对应第一个答案,3对应第四个答案。

相关内容

  • 没有找到相关文章

最新更新