我有两个 UIButton
,如果我单击 button1
,则 label1
的值为 250,如果我再次单击 button1
label1
的值应为 0。相同的逻辑适用于我的 button2
和 label2
。我想将 label1
和 label2
的添加存储到 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
}
}
最佳答案
您面临的第一个问题是您在两种不同的场景中使用相同的 boolean 值 isClick
。您的逻辑是,用户可以决定单击两个按钮或单个按钮。因此,如果我单击第一个按钮,那么您的标志就会打开,因为第二个按钮也使用相同的 boolean 值,那么您将自动获得取消选中的行为。
Thus you should use two different booleans such as
hasPressOntoFirstButton
andhasPressOntoSecondButton
, where both set tofalse
at the beginning, and each variable is used in their respective scene.
您提到要将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 对象
命名与数据分开。即您可以使用 deliveryFareLabel.text
而不是 DeliverFare.text
(2) 避免使用 !
,使用 nil coalescing ??
、if let
或 guard 语句解包所有可选内容
关于swift - 总共标签点击两个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47304643/