如何根据字符串值检查UILabel文本?

时间:2016-07-04 04:48:21

标签: ios swift boolean uilabel

我不是一个非常有经验的编码器,所以我很难弄清楚它是否可能,如果是这样的话,如何检查标签中找到的字符串是否符合给定的字符串值。

当Radius标签显示“Radius in feet”以及我的消息文本字段不为空时,我希望启用“添加”按钮。

到目前为止,我有:

@IBAction func textFieldEditingChanged(sender: UITextField) {
    addButton.enabled = !radiuslabel.text == "Radius in feet" && !messageTextField.text.isEmpty
}

此代码错误,我无法找到答案。 Radius标签从滑块获得信息。 这是滑块功能的代码:

  @IBAction func sliderValueChanged(sender: UISlider) {
    var currentValue = Int(sender.value)
    radiusLabel.text = "\(currentValue)"
}

还有另一种方法可以将Radius作为整数保留在Label的一部分吗?

3 个答案:

答案 0 :(得分:0)

您不希望在radiusLabel.text前面使用逻辑NOT(!)运算符。你想要使用"不等于" operator(!=)。

此外,您应该在第二次出现时使用UILabel成员text上的可选链接(当您访问成员isEmpty时)。这里比较假,因为它是可选的。

addButton.enabled = radiuslabel.text != "Radius in feet" && messageTextField.text?.isEmpty == false

sender应保留UILabel

类型

More about operators in Swift

答案 1 :(得分:0)

我们假设您的滑块的值介于1 to 102之间,代表Feet

中的值

因此根据您的代码,您在滑块值更改时将值设置为radiusLabel

@IBAction func sliderValueChanged(sender: UISlider) {
    var currentValue = Int(sender.value)
    radiusLabel.text = "\(currentValue)"
}

AND 更改邮件标签中的值

@IBAction func textFieldEditingChanged(sender: UITextField) {
    addButton.enabled = !radiuslabel.text == "Radius in feet" && !messageTextField.text.isEmpty
}

messageTextField的值更改

时,您实际上是在启用该按钮

只要滑块值设置为英尺或messageLabel有一些值,您想要启用按钮。你需要做的是

func shouldEnableButton()
{
    //Assuming value 2 means value in feet
    addButton.enabled = radiuslabel.text != "2" && (messageTextField.text != nil && !messageTextField.text!.isEmpty)
}

@IBAction func sliderValueChanged(sender: UISlider) {
    var currentValue = Int(sender.value)
    radiusLabel.text = "\(currentValue)"
    messageLbl.text = nil
    self.shouldEnableButton()
}

@IBAction func textFieldEditingChanged(sender: UITextField) {
    self.shouldEnableButton()
}

答案 2 :(得分:-1)

尝试以下代码行:

@IBAction func textFieldEditingChanged(sender: UITextField) {
addButton.enabled = (!(radiuslabel.text == "Radius in feet") && !messageTextField.text.isEmpty)
}

希望它能帮到你......