swift - 使用 UISlider 更新标签中的字符串而不是 Int/Double 等

标签 swift swift3 uislider

我试图让一个 UISlider 根据它在我们所说的“滑动条”中的位置给我字符串值。

我正在寻找的是,如果 Slider 的 Int 值为 1,则 textLabel 将为“Daily”,如下所示:

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

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

到目前为止,这是我的代码...注意*我已经放置了 Outlet 和 Action。

@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"
}

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

如有任何帮助,我们将不胜感激。 - 谢谢大家。

最佳答案

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

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

关于swift - 使用 UISlider 更新标签中的字符串而不是 Int/Double 等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39680284/

相关文章:

ios - UIRectCorner 类型在 Swift 3 中没有成员 isRightPage

ios - 如何在 UISlider 上绘制静态圆圈?

ios - 使用 Action 将 CollectionView 滚动到下一个单元格

ios - 我的应用程序一直拒绝访问联系人 iOS - Swift

ios - 围绕 iOS 中的对象展开思考

swift3 - 无法实例化 UIStoryboard(名称 : "something", bundle :nil)

swift - 在 UIDatePicker 中删除日期的可选字符串

ios - 使用 UISlider 缩放 UIView

swift - 是否可以像 Netflix 应用程序一样在滚动视频时间线的同时制作预览图像?

ios - 在没有 Storyboard Swift 4 的情况下构建 UI 元素