Search code examples
swiftswift4

How can I show and hide labels?


I have 4 labels (dayString1, dayString2, dayString3 and dayString4) in which they will put a numerical value and what I need to do is that if the content of dayString1 is less than 60 than the dayString2 appears, and if the sum of dayString1 + dayString2 is less than 60 the dayString3 appears and so on; My logic was this, but it gives error:

(Ambiguous reference to operator function '<')

func chooseDays() {
        self.dayString = dayTextField.text!
        self.dayString2 = dayTextField2.text!
        self.dayString3 = dayTextField3.text!
        self.dayString4 = dayTextField4.text!

        if dayString < 60 {
            self.dateTextField2.isHidden = false
            self.dayTextField2.isHidden = false

            self.dateTextField3.isHidden = true
            self.dayTextField3.isHidden = true
            self.dateTextField4.isHidden = true
            self.dayTextField4.isHidden = true

            SearchConstraint.constant = 72

            if dayString + dayString2 < 60 {
                self.dateTextField2.isHidden = false
                self.dayTextField2.isHidden = false
                self.dateTextField3.isHidden = false
                self.dayTextField3.isHidden = false

                self.dateTextField4.isHidden = true
                self.dayTextField4.isHidden = true

                SearchConstraint.constant = 112

                if dayString + dayString2 + dayString3 < 60 {
                    self.dateTextField2.isHidden = false
                    self.dayTextField2.isHidden = false
                    self.dateTextField3.isHidden = false
                    self.dayTextField3.isHidden = false
                    self.dateTextField4.isHidden = false
                    self.dayTextField4.isHidden = false

                    SearchConstraint.constant = 152
                }
            }
        }
        return
    }

Solution

  • You need to type caste string to integer before performing any comparison with another integer like this:

    if Int(dayString) < 60 {
    

    Also do nil coalescing technique to handle unwrapping of texts from textfields:

        self.dayString = dayTextField.text ?? "0"
        self.dayString2 = dayTextField2.text ?? "0"
        self.dayString3 = dayTextField3.text ?? "0"
        self.dayString4 = dayTextField4.text ?? "0"