我有3个细分控件(游戏名称),还有3个文本字段,分别表示价格,数量和小计。 我也有1个步进器来增加或减少1到5之间的数量。

当我更改一个游戏的数量并更改选择另一个游戏时,出现我的问题。 假设我将game1数量增加到5并更改游戏。 数量字段自动设置为1。 但是步进器中的“ +”是不可选择的,当我在步进器中按“-”时,数量为4。

我需要从分段控制更改游戏时刷新步进值。 任何想法 ?

    class ViewController: UIViewController {

        @IBOutlet weak var Photo: UIImageView!
        @IBOutlet weak var seg_games: UISegmentedControl!
        @IBOutlet weak var lbl_motto: UILabel!
        @IBOutlet weak var txt_unitPrice: UITextField!
        @IBOutlet weak var txt_quantity: UITextField!
        @IBOutlet weak var txt_totalPrice: UITextField!
        @IBOutlet weak var step_qChooser: UIStepper!


        @IBAction func stepChanged(sender: UIStepper) {


            if (txt_quantity.text.isEmpty) {
                let alert = UIAlertView()
                alert.title = "No Game Choose"
                alert.message = "Please Pick Your Game First !"
                alert.addButtonWithTitle("Ok")
                alert.show()
            }

            else {

            txt_quantity.text = Int(sender.value).description
            txt_totalPrice.text = TotalCalc()

            }
        }

        func TotalCalc () -> String {
            var a = txt_unitPrice.text.toInt()
            var b = txt_quantity.text.toInt()
            var sonuc = a! * b!
            return String(sonuc)
        }


        @IBAction func seg_games(sender: AnyObject) {

            var index = seg_games.selectedSegmentIndex
            var choice = seg_games.titleForSegmentAtIndex(index)!

            if choice == "Fallout"
            {
                lbl_motto.text = "Be Prepare your P.I.M.P."
                self.Photo.image = UIImage(named: "fallout.png")
                txt_quantity.text = "1"
                txt_unitPrice.text = "80"

                txt_totalPrice.text = TotalCalc()

            }

            else if choice == "Borderlands"
            {
                lbl_motto.text = "Ready for BIG BOYS !!!"
                self.Photo.image = UIImage(named: "borderlands.png")
                txt_quantity.text = "1"
                txt_unitPrice.text = "55"

                txt_totalPrice.text = TotalCalc()

            }

            else if choice == "Battlefield"

            {
                lbl_motto.text = "Choose: Sniper or Assult"
                self.Photo.image = UIImage(named: "battlefield.png")
                txt_quantity.text = "1"
                txt_unitPrice.text = "110"

                txt_totalPrice.text = TotalCalc()

            }

        }

===============>>#1 票数:1 已采纳

UISteppervalue是可读和可写的。

如果在更改分段时始终希望数量返回1 ,则只需在更改分段时将步进器值设置为1.0

step_qChooser.value = 1.0

如果您希望保留数量(例如,如果离开并返回,则“无主之地”的数量保持为3 ),则需要将每个项目的数量与UIStepper分开UIStepper

  1. 创建一个数组以保存步进值。 这是ViewController的属性,因此应在任何方法上方定义:

     var quantities = [1.0, 1.0, 1.0] 

    这些数量将由您从UISegmentedControl获得的index来索引。

  2. 选择新游戏后,从数量中更新步进值并相应地设置文本字段:

     step_qChooser.value = quantities[index] txt_quantity.text = "\\(Int(quantities[index]))" 
  3. 步进值更改时,请确保更新quantities数组中的值。 stepChanged()函数内部执行stepChanged()操作:

     quantities[seg_games.selectedSegmentIndex] = step_qChooser.value 

  ask by Numan Bayülken translate from so

未解决问题?本站智能推荐: