在 UIStepper 中使用字符串 - Swift

using String with 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)

尊重用户的语言环境。