使用UISlider更新Label中的字符串而不是Int / Double等

时间:2016-09-24 19:43:56

标签: swift swift3 uislider

我试图让UISlider根据它在"滑动条中的位置给我字符串值"我们应该说。

我正在寻找的是如果Slider的Int值是1,那么textLabel将是" Daily"如下所示:

1 = "Daily"
2 = "Weekly"
3 = "Monthly"
4 = "Quarterly"
5 = "Annually"

我知道使用UIPicker会更容易但是老实说它会破坏应用程序的设计:(

这是我的代码到目前为止...注意*我已经把Outlet&动作。

@IBAction func durationAction(_ sender: UISlider) {

    durationLabel.text = "\(Int(durationSlider.value))"

if durationSlider.value == 1
{
    self.durationLabel.text = "Daily"
}
if durationSlider.value == 2
{
    self.durationLabel.text = "Weekly"
}
if durationSlider.value == 3
{
    self.durationLabel.text = "Monthly"
}
if durationSlider.value == 4
{
    self.durationLabel.text = "Quarterly"
}
if durationSlider.value == 5
{
    self.durationLabel.text = "Annually"
}

上面的代码只给出了我的第一个和最后一个职位。这显然意味着我做错了什么。

非常感谢任何帮助。 - 谢谢你们。

2 个答案:

答案 0 :(得分:1)

滑块的值为Float s。在检查之前,您应该将它们四舍五入到最近的Int。如果您将String放入数组中,则可以直接选择它们。

@IBAction func durationAction(_ sender: UISlider) {
    let intervals = ["Daily", "Weekly", "Monthly", "Quarterly", "Annually"]
    self.durationLabel.text = intervals[Int(sender.value.rounded()) - 1]
}

答案 1 :(得分:1)

尝试这样的事情。

@IBAction func durationAction(_ sender: UISlider)
{
    let integerValue = Int(sender.value)

    self.durationLabel.text = "\(integerValue)"

    switch integerValue {
    case 1 : print("Daily")
    case 2 : print("Weekly")
    case 3 : print("Monthly")
    case 4 : print("Quarterly")
    case 5 : print("Annually")
    default : ()
    }
}