标签总数点击两个按钮

时间:2017-11-15 10:13:34

标签: swift boolean

我有两个UIButton,如果我点击button1 label1的值为250,如果我再次点击button1 label1的值应该为0.我的button2label2应用了相同的逻辑。我想将label1label2添加到label3中。 。我的代码是:

func PickUpCarCost() {
            if (!isclick){
                imgCheck.image = UIImage(named: "check.png")
                isclick=true

                //Pickup fare conver into integer

                let PickUp = String(self.PickUpPrice)
                PickUpFare.text = PickUp
                self.pickCost = Int( PickUpFare.text!)
                self.PAyAmount = ((self.PayFareWithSecurity)+(self.pickCost))
                print("PaybleAmount: \(self.PAyAmount)")
                self.AmountPay1 = ((self.PAyAmount)+(self.DeliverCost))
                PaybleAmount.text=String(self.AmountPay1!)

            }
            else
            {
                imgCheck.image = UIImage(named: "uncheck.png")
                PickUpFare.text = "0"
                self.PickUpElse=Int(PickUpFare.text!)
                print("PickUpElse: \(self.PickUpElse)")
                self.PAyAmount = (self.PayFareWithSecurity)+(self.PickUpElse)
                PaybleAmount.text=String(self.PAyAmount!)
                isclick=false
            }
    }


    func CarDeliverCost() {
        if (!isclick){
            imgUnCheck.image = UIImage(named: "check.png")
            isclick=true
            let DeliverPrice = String(self.deliveryPrice)
            DeliverFare.text = DeliverPrice
            self.DeliverCost = Int(DeliverFare.text!)

            self.PAyAmount = ((self.PayFareWithSecurity)+(self.DeliverCost))

            print("PaybleAmount: \(self.PAyAmount)")

            PaybleAmount.text=String(self.PAyAmount!)

        }
        else
        {
            imgUnCheck.image = UIImage(named: "uncheck.png")
            let deliveryelse = String(0)
            DeliverFare.text = deliveryelse
            self.deliver = Int(DeliverFare.text!)
            PaybleAmount.text=String(self.PAyAmount!)
            isclick=false

        }
    }

1 个答案:

答案 0 :(得分:0)

您面临的第一个问题是您在两种不同的情况下使用相同的布尔值isClick。您的逻辑是用户可以决定单击两个按钮或单个按钮。因此,如果我单击第一个按钮,那么您的标志将打开,因为第二个按钮也使用相同的布尔值,然后您将自动取消检查行为。

  

因此,您应该使用两个不同的布尔值,例如hasPressOntoFirstButtonhasPressOntoSecondButton,其中两者都在开头设置为false,并且每个变量都用于各自的场景中。

您提到要将label1添加到label2,更简单的方法是添加设置这些标签的变量。即

let label1 = UILabel()
let label2 = UILabel()
let label3 = UILabel()

let data1: Double = 83.0 
let data2: Double = 82.0 

var total: Double { // have a computed variable to adds automatically 
    return data1 + data2 
}

label1.text = "\(data1)"
label2.text = "\(data2)"
label3.text = "\(data1 + data2)" // or "\(total)"

说明:

(1)您的命名约定确实具有误导性,您应该将UI object命名与数据分开。即你可以deliveryFareLabel.text代替DeliverFare.text

(2)避免使用!,使用nil coalescing ??if letguard statements

解包所有可选项