swift - 总共标签点击两个按钮

标签 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

        }
    }

最佳答案

您面临的第一个问题是您在两种不同的场景中使用相同的 boolean 值 isClick。您的逻辑是,用户可以决定单击两个按钮或单个按钮。因此,如果我单击第一个按钮,那么您的标志就会打开,因为第二个按钮也使用相同的 boolean 值,那么您将自动获得取消选中的行为。

Thus you should use two different booleans such as hasPressOntoFirstButton and hasPressOntoSecondButton, where both set to false 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 letguard 语句解包所有可选内容

关于swift - 总共标签点击两个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47304643/

相关文章:

ios - 将线性渐变应用于段 (UIBezierPath)

ios - swift Autolayout 3按钮设置水平宽度根据文本进行管理

c++ - 控制 ENUM 内容的 boolean 值 - C++

php - 使用javascript获取php boolean 值

python - 查找值为真的 boolean 数组的索引

ios - UILabel 未配置为自动布局

ios - 检查字体仅是粗体,而不是特粗体、半粗体或任何其他粗体

swift - 在文本字段中使用 "•••••••"隐藏密码

javascript - 逻辑运算符 ||在 javascript 中,0 代表 Boolean false?

algorithm - Strassen算法可以用于 boolean 矩阵乘法吗?