在 UIStepper 中使用字符串 - Swift

问题描述

我有一个标签一个 UIStepper,我需要在不丢失字母 ( Kd ) 的情况下增加标签数量。我的标签将是这样的“5.000 Kd”,当我增加数字时,我不想丢失 (Kd) 标签

这是我的代码

import UIKit
import GMStepper

class ViewController: UIViewController {
    
    
    @IBOutlet var stepper: GMStepper!
    @IBOutlet var price: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    
    
    @IBAction func stepper(_ sender: Any) {
        
        let label = "5.000 Kd" as Nsstring
        price.text! = String(label.doubleValue * stepper.value)
        
    }
}

解决方法

如果您对标签的字符串内容进行硬编码,只需维护一个数值并在每次该值更改时重建标签内容:

class ViewController: UIViewController {

    @IBOutlet var stepper: GMStepper!
    @IBOutlet var priceLabel: UILabel!
    var price: Double = 5.0
    
    @IBAction func stepper(_ sender: Any) {
        let newValue =  price * stepper.value
        //Format the price with 3 decimal places
        let priceString = String(format: "%.3f",newValue) 

        Construct a string with the formatted price and " Kd" and put it in the label
        priceLabel.text = "\(priceString) Kd")
    }
}
,

考虑使用 NumberFormatter 来格式化货币:

 let cf = NumberFormatter()
 cf.currencyCode = "KWD"
 cf.numberStyle = .currency
 cf.string(from: 5000)

这尊重用户的语言环境。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...